انقل مثيل Discourse الخاص بك إلى خادم مختلف

أضيف هنا حالة شاذة (edge case) صادفتها أثناء الهجرة، في حال كانت مفيدة لغيري.

واجهت حالة شاذة متعلقة بـ Let’s Encrypt/SSL أثناء نقل نسخة Discourse مستقلة إلى خادم VPS جديد، لذا قمت بتوثيق خطوات التشخيص والاسترداد بدقة في حال كانت مفيدة لأي شخص آخر يتبع هذا الدليل.

في حالتي، لم يبدأ nginx داخل app لأن كلا ملفي .cer في /var/discourse/shared/standalone/ssl/ قد تحولا إلى ملفات بحجم صفر بايت:

PEM_read_bio_X509_AUX() failed

أدى إعادة البناء إلى محاولة إصدار الشهادة مرة أخرى، وبعد محاولات متكررة وصلت إلى حد معدل إصدار الشهادات (rate limit) الخاص بـ Let’s Encrypt. لم يكن نسخ ملفات الشهادات لا تزال صالحة من الخادم القديم كافياً بحد ذاته، لأن تشغيل app استبدلها مرة أخرى بملفات بحجم صفر بايت.

ما أصلح المشكلة في النهاية كان إيقاف app ونسخ كلا من دليل /var/discourse/shared/standalone/ssl/ العامل و حالة /var/discourse/shared/standalone/letsencrypt/ المقابلة من الخادم القديم، ثم تشغيل الحاوية مرة أخرى.

لقد وثقت التسلسل الكامل هنا:

هذه ملاحظات تشخيص/استرداد من هذه الهجرة الخاصة وليست بديلاً عن وثائق الهجرة أو HTTPS الرسمية.

هناك أيضاً موضوع أقدم على Meta يغطي وضع الفشل المتعلق بملفات .cer الفارغة: