HTTPS: مشكلة أثناء محاولة إعداد شهادة SSL

مرحبًا!

لقد كنت أحاول تمكين HTTPS لموقعي الإلكتروني متبعًا هذا الدليل الرائع. سار كل شيء على ما يرام حتى حاولت إعادة بناء التطبيق، عن طريق كتابة ./launcher rebuild app.

شغّلت discourse-doctor لمحاولة فهم المشكلة، وفي النهاية عثرت على شيء ما:

==================== END REBUILD LOG ====================
فشل إعادة بناء التطبيق.

التحقق من اسم النطاق الخاص بك . . .

تم الاتصال بنجاح بـ discourse.mydomain.com.
ينبغي عليك على الأرجح إزالة أي إضافات غير قياسية وإعادة البناء.
محاولة إعادة تشغيل الحاوية الحالية . . .

بدء تشغيل الحاوية الحالية
+ /usr/bin/docker start app
استجابة خطأ من الخدمة: فشل السائق في برمجة الاتصال الخارجي للنقطة الطرفية app (some_random_characters): خطأ في بدء وكيل مساحة المستخدم: الاستماع tcp 0.0.0.0:443: ربط: العنوان مستخدم بالفعل
خطأ: فشل في بدء الحاويات: app
فشل إعادة تشغيل الحاوية.

ملاحظة: لقد استبدلت سلسلة طويلة من الأحرف بـ some_random_characters واستبدلت اسم نطاقي بـ discourse.mydomain.com.

هذا غريب جدًا لأنني التزمت بالدليل؛ ولا أعرف كيفية إصلاح المشكلة.

أي مساعدة ستكون مُقدَّرة للغاية!

أتمنى لك يومًا سعيدًا،

nekodroid

ستحتاج إلى مشاركة ملف app.yml الخاص بك لإجراء تشخيص إضافي. تأكد من إزالة أي عناوين بريد إلكتروني وكلمات مرور حساسة قبل النشر.

--- 
env: 
  DISCOURSE_DEVELOPER_EMAILS: myemailadress@maildomain.com
  DISCOURSE_HOSTNAME: discourse.mydomain.com
  DISCOURSE_SMTP_ADDRESS: stmp.eu.mailgun.org
  DISCOURSE_SMTP_PASSWORD: smtppasswordwithoutquotes
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: postmaster@discourse.mydomain.com
  LANG: en_US.UTF-8
  LETSENCRYPT_ACCOUNT_EMAIL: myemailadress@maildomain.com
  UNICORN_WORKERS: 2
expose: 
  - "80:80"
  - "443:443"
hooks: 
  after_code: 
    - 
      exec: 
        cd: $home/plugins
        cmd: 
          - "git clone https://github.com/discourse/docker_manager.git"
params: 
  db_default_text_search_config: pg_catalog.english
  db_shared_buffers: 128MB
run: 
  - 
    exec: "echo \"Beginning of custom commands\""
  - 
    exec: "echo \"End of custom commands\""
templates: 
  - templates/postgres.template.yml
  - templates/redis.template.yml
  - templates/web.template.yml
  - templates/web.ratelimited.template.yml
  - templates/web.template.yml
  - templates/web.ssl.template.yml
  - templates/web.letsencrypt.ssl.template.yml
volumes: 
  - 
    volume: 
      guest: /shared
      host: /var/discourse/shared/standalone
  - 
    volume: 
      guest: /var/log
      host: /var/discourse/shared/standalone/log/var-log

ها هو ~

هل قرأت هذا الجزء؟

يبدو أن هناك مشكلة في تثبيت Docker الخاص بك.

ولماذا قمت بإعادة كتابة ترتيب العناصر في app.yml بالكامل؟

في الواقع، لقد قرأت هذا الدليل، لكنه تعثر عند تنفيذ الأمر wget -qO- https://get.docker.com/ | sh؛ حيث أفاد بـ “استخدام خاطئ لأمر wget” كما أتذكر. لذا قفزت إلى الخطوات التالية، وأتذكر أن Docker تم تثبيته تلقائيًا بعد كتابة الأمر ./discourse-setup.

هذا على الأرجح مشكلتي…

سأعيد تثبيت Discourse من البداية تمامًا ثم سأحدث هذا الموضوع.

شكرًا جزيلاً لكم على مساعدتكم، يا أصدقاء! :smiley_cat:

نعم! تم إضافة هذا في مرحلة ما. غير متأكد من متى تمت إضافته.

يسعدنا أن تكون قد نجحت.

شكرًا لك :uwu:

على أي حال، أواجه خطأً آخر الآن!

لقد شغلت برنامج الإعداد التلقائي discourse-setup وأضفت عنوان بريد إلكتروني لتشفير Let’s Encrypt عند الطلب. والآن يظهر الرسالة التالية:

Checking your domain name . . .
WARNING:: This server does not appear to be accessible at discourse.apertureproject.me:443.

A connection to http://discourse.apertureproject.me (port 80) also fails.

وفقًا لهذا، فإن الخطأ ناتج عن منافذ غير مفتوحة، وأنا لا أملك أي فكرة عن كيفية إصلاح هذا. ولن أطلق موقعي دون تشفير، لذا لن أقوم بتعطيل Let’s Encrypt.

تعديل!

لقد وجدت وثائق المضيف الخاص بي (OVH) حول كيفية فتح المنافذ. لكن مدير عناوين IP الخاص بي فارغ، بينما يجب أن يكون مملوءًا بعدة عناوين IP وفقًا للصور المرفقة في الوثائق.

أعتذر، النص باللغة الفرنسية، ولكن كما ترون، قائمة عناوين IP فارغة تمامًا.

قد يفشل الاختبار حتى لو لم تكن هناك مشكلة فعلية، لذا يمكنك رؤية ما يحدث.

هل تم إعداد DNS؟ لا. discourse.apertureproject.me لا يحل. يجب عليك إعداد DNS قبل أن تتمكن من استخدام https.

ما نظام التشغيل الذي تستخدمه؟ وما هي المنصة؟ (بعضها تعطى المنافذ افتراضيًا)

إذا قمت بتشغيل nc في سطر الأوامر، هل تظهر لك رسالة “الأمر غير موجود”؟

حسنًا، كيف يمكنني فعل ذلك؟

أعلم أن الأمر يتعلق بسجلات DNS، ولكن ما نوع القيمة المطلوبة، وما إلى ذلك؟

بمعنى القيمة، أقصد A، AAAA، NS، إلخ.

لأنني أضفت بالفعل ما يلي في فئة خوادم DNS:

شكرًا جزيلاً على مساعدتك أيضًا ~ :smiley_cat:

تحتاج إلى سجل A يشير إلى عنوان IP الخاص بـ droplet الخاص بك.

لقد قمت بذلك.

سؤال آخر، لدي مشكلة لم أواجهها من قبل: الآن تظهر صفحة ترحيب nginx عند كتابة apertureproject.me

كانت تظهر رسالة تثبيت Discourse بنجاح من قبل

يُفتح صفحة التثبيت. هذا أمر طبيعي. اسرع بتثبيته.

إذن كيف أقوم بتثبيته؟ لا أفهم. لم أكن أرى هذه الصفحة من قبل

عذراً، أنا جديد قليلاً في هذا… الأمر محير :tired_face:

اتبع التعليمات فقط.

هل تقصد دليل التثبيت لمدة 30 دقيقة؟ لقد اتبعتُه

لا، لقد قمت بذلك بالفعل. أنت الآن في خطوة تسجيل المشرف.

آه… لا يزال الأمر غير واضح لي x’ ماذا تنصحني بفعل؟

ماذا ترى عند تصفح نطاقك؟

مرحبًا بك في nginx!

إذا كنت ترى هذه الصفحة، فهذا يعني أن خادم الويب nginx مُثبّت ويعمل بنجاح. يلزم إجراء تكوين إضافي.

للحصول على التوثيق والدعم عبر الإنترنت، يرجى الرجوع إلى nginx.org.

يتوفر الدعم التجاري في nginx.com.

شكرًا لاستخدامك nginx.

لا، أنا أرى صفحة التسجيل. امسح ذاكرة التخزين المؤقت وسجل التصفح في المتصفح وحاول مرة أخرى.