أحاول إعادة تكوين شهادة SSL، وأرغب في تعطيل شهادة Let’s Encrypt المجانية.
نظرًا لأنني اشتريت شهادة، فقد وجدت بعض العمليات عبر Google.
عدّلت ملف app.yml مباشرة وتأكدت من أن المفتاح key والشهادة cer في المسار /var/discourse/shared/standalone/ssl/ متسقة مع ملف التكوين، ثم قمت بإعادة البناء، لكن النتيجة فشلت ولا تزال تستخدم شهادة Let’s Encrypt.
يحتوي nginx على سجل أخطاء كما يلي:
2021/09/25 16:37:26 [emerg] 48#48: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
2021/09/25 16:37:27 [emerg] 78#78: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
2021/09/25 16:37:28 [emerg] 80#80: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
2021/09/25 16:37:29 [emerg] 82#82: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
2021/09/25 16:37:30 [emerg] 95#95: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
2021/09/25 16:37:31 [emerg] 104#104: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
2021/09/25 16:37:32 [emerg] 106#106: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
لقد استمريت في استخدام اسم ملف بيانات الاعتماد الخاطئ؛ فإعدادات nginx تتطلب ملفًا بامتداد crt، لكنني كنت أقوم بتثبيت واختبار ملف بامتداد cer.
لذلك، تم حل مشكلة SSL.
root@discourse-test:/var/discourse/shared/standalone/ssl# ls -al ssl.*
لاحظ الفرق بعد الجزء /shared/ في المسارات. كان Nginx يتوقع أن يكون ملف ssl.crt في مجلد shared/ssl/. بينما وجدته في shared/standalone/. لم يكن الملف موجودًا في المسار الذي كان Nginx يبحث فيه عنه.
يبدو غير متطابق، لكنه في الواقع نفس الشيء.
لقد تم حل المشكلة الأولى.
السبب الجذري بالنسبة لي هو أنني لم ألاحظ تنسيق الشهادة.
الإعدادات في الملف تستخدم تنسيق crt، لكنني كنت أستخدم دائماً ملفات بتنسيق cer، لذا لم يتمكن nginx من قراءة ملف الشهادة بنجاح.