لقد قمت للتو بتحديث هذا لأن الإصدار القديم لم يعد يعمل. لقد اختبرته على موقعين، لذلك أعتقد أنه يجب أن يكون جيدًا.
تعديل: تم العثور على حل، تجاهل كل ما يلي، ولكن سأتركه هنا للأشخاص المستقبليين. سأترك الحل في الأسفل.
لقد عثرت للتو على هذا الموضوع. إذن، موقعي هو: forums.mysite.me. لدي 3 نطاقات في تكوين NGINX الخاص بي ومزود النطاق الخاص بي الذي أستخدمه لـ DNS CNAME’s والتي تعود على أنها غير آمنة:
mysite.me
www.mysite.me
forum.mysite.me (بدون "s" إذا أخطأ شخص ما في كتابة عنوان URL أو خمّنه)
هل أستخدم النطاق الأساسي الخاص بي في التكوين الموجود في المنشور الأصلي؟ أو كيف أقوم بإعداده للثلاثة جميعًا؟
after_ssl:
# أخبر letsencrypt بالشهادات الإضافية التي يجب الحصول عليها
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d forums.mysite.me --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d forums.mysite.me --fullchainpath"
أنا مرتبك لأن قسم “replace” الأول يحتوي على from: /--keylength/ والقسم الذي تحته يحتوي على from: /--fullchainpath/. لذا، هل أقوم بإنشاء مدخلين مثل هذين لكل من عناوين URL الثلاثة التي أدرجتها أم؟… أم سيكون هذا؟
after_ssl:
# أخبر letsencrypt بالشهادات الإضافية التي يجب الحصول عليها
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d mysite.me -d www.mysite.me -d forum.mysite.me --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d mysite.me -d www.mysite.me -d forum.mysite.me --fullchainpath"
^ نعم، الصندوق أعلاه هنا كان الحل لمواقع متعددة/LetsEncrypt. أنا متحمس جدًا.
نعم. هناك استبدالان مختلفان في الملف يحتاجان إلى تحديث بأسماء المضيفين.
أليس هذا ما قدمه المنشور في الأعلى عندما أدخلت الأسماء كما هو موضح؟
كيف يمكننا تعديل المنشور الأصلي حتى لا يكون مربكًا؟
شخصيًا، أود أن أقترح نقل ذلك فوق مربع الإدخال، حتى تراه أثناء الكتابة.
أعطت المشاركة ذلك، نعم، لكنني لم أفهمها لأن
لماذا لا يجيب قسم “إذا كنت بحاجة إلى إضافة نطاقات متعددة” الذي اقتبسته على ذلك؟
حسناً. ماذا عن هذا:
ثم بعد الكود المراد نسخه، يستمر:
هل هذا منطقي؟
أعتقد أنه من الأسهل وضع الكود الفعلي مع مواقع متعددة كمثال استخدمته أعلاه:
after_ssl:
# أخبر letsencrypt بالشهادات الإضافية التي يجب الحصول عليها
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d mysite.me -d www.mysite.me --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d mysite.me -d www.mysite.me --fullchainpath"
أعتقد أن معظم الناس سيرغبون في إضافة نطاق إضافي واحد فقط، لذا فإن طريقتي أسهل وتوفر طريقة بسيطة للحصول على النص الدقيق الذي تحتاجه دون الحاجة إلى إجراء أي تعديلات عليه.
ربما لا يزال من الواضح أنه إذا كان موقعك هو discourse.y.com وتريد شهادات لـ discourse.y.com و y.com، فأنت تحتاج فقط إلى إدخال y.com في حقل “domain2” والنقر على أيقونة النسخ؟
في مثالك، إذا كنت قد قمت بتكوين Discourse الخاص بك ليكون mysite.com، فلن تحتاج إلى الجزء -d mysite.me في مثالك (أو إذا كان موقعك هو www.mysite.me فأنت تحتاج فقط إلى الجزء -d mysite.me).
في أي ملف تتم إضافة هذا الرمز؟
يجب إضافة الرمز البرمجي بالقرب من نهاية ملف app.yml الخاص بك، في قسم hooks:
تم تقسيم 18 منشورًا إلى موضوع جديد: Let’s Encrypte with multiple domains wasn’t working for ECC certs
هل ما زلت بحاجة إلى استبدالات مقتطفات الكود الأخرى أم أن مقتطف الكود الجديد هذا هو كل ما أحتاجه؟
لقد أضفته وأعدت تجميعه ولكنني ما زلت أحصل على خطأ خصوصية SSL عند الانتقال إلى أحد نطاقات https التي أريد إعادة توجيهها.
عند النظر إلى الشهادة، فإن اسمها الشائع هو forum.domain.com، مع عدم وجود O و OU كجزء من الشهادة.
أحاول الحصول على https://domain.com و https://www.domain.com معاد توجيههما إلى https://forum.domain.com.
عند استخدام http://domain.com و http://www.domain.com، فإنه يعيد التوجيه بشكل صحيح إلى https://forum.domain.com.
ماذا أدخلت؟ كيف يبدو مقطع after_ssl الخاص بك؟
يبدو أن هذا (تم تغيير اسم النطاق الفعلي)
after_ssl:
- replace:
filename: /etc/runit/1.d/letsencrypt
from: /-d forum.mydomain.com /
to: -d forum.mydomain.com -d www.mydomain.com -d mydomain.com
global: true
لقد أضفت أيضًا هذا
LETSENCRYPT_ALTERNATE_NAMES: mydomain.com,www.mydomain.com
خطأ المتصفح هو
net::ERR_CERT_COMMON_NAME_INVALID
هل تتعرف جميع الأسماء؟ هل ليس لديهم كلاودفلير أمامهم؟ هل وصلت إلى حدود المعدل؟ يمكنك النظر في الحاوية وتشغيل /etc/runit/1.d/letsencrypt ورؤية ما يحدث
جميع الأسماء تُحل، لا يوجد Cloudflare، يجب أن تكون معدلات الإصابة جيدة.
إليك نتيجة تشغيل letsencrypt؛
(تم استبدال اسم النطاق)
/var/www/discourse# /etc/runit/1.d/letsencrypt
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
[Tue Apr 29 04:02:13 PM UTC 2025] Unknown parameter : 4096
[Tue Apr 29 04:02:13 PM UTC 2025] Installing key to: /shared/ssl/forum.domain.com.key
[Tue Apr 29 04:02:13 PM UTC 2025] Installing full chain to: /shared/ssl/forum.domain.com.cer
[Tue Apr 29 04:02:13 PM UTC 2025] Run reload cmd: sv reload nginx
ok: run: nginx: (pid 429) 10662s
[Tue Apr 29 04:02:13 PM UTC 2025] Reload success
[Tue Apr 29 04:02:13 PM UTC 2025] Unknown parameter : ec-256
[Tue Apr 29 04:02:14 PM UTC 2025] Installing key to: /shared/ssl/forum.domain.com_ecc.key
[Tue Apr 29 04:02:14 PM UTC 2025] Installing full chain to: /shared/ssl/forum.domain.com_ecc.cer
[Tue Apr 29 04:02:14 PM UTC 2025] Run reload cmd: sv reload nginx
ok: run: nginx: (pid 429) 10663s
[Tue Apr 29 04:02:14 PM UTC 2025] Reload success
نظرت داخل الملف، إليك ملف مثير للاهتمام
issue_cert() {
LE_WORKING_DIR="${LETSENCRYPT_DIR}" /shared/letsencrypt/acme.sh --issue $2 -d forum.domain.com -d www.domain.com -d domain.com--keylength $1 -w /var/www/discourse/public
}
يبدو أن هناك مسافة مفقودة بين النطاق الأخير و --keylength؟
domain.com--keylength
لقد أدى إصلاح ذلك إلى حل المشكلة، شكرًا على المساعدة
أفترض أن الإصلاح يجب أن يكون بإضافة / إلى حقل to: أيضًا؟
after_ssl:
- replace:
filename: /etc/runit/1.d/letsencrypt
from: /-d forum.domain.com /
to: "-d forum.domain.com -d www.domain.com "
global: true
يجب أن تكون علامات اقتباس، وليس شرطات مائلة. لقد قمت بتحرير منشورك ومنشور OP. ما لديك الآن يجب أن يعمل.