شهادةُ Let's Encrypt تجدّد نفسها كلّ ستّين يومًا بلا أن يلاحظ أحد — حتى يعرقل التحقّقَ تغييرٌ جرى قبل شهور. والإخفاقُ صامت، وأوّلُ علامةٍ تحذيرُ متصفّحٍ في العادة.

انظر تاريخ الانتهاء الحقيقيّ

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates

المعرقلات الثلاثة

  • تحويلٌ يلتقط طلبَ التحقّق. فالفحصُ طلبُ HTTP صريح إلى /.well-known/acme-challenge/. وقاعدةٌ شاملة تحوّل http إلى https وتحوّل ذلك المسار معها تكسره.
  • انتقل سجلُّ الـ DNS. فالنطاق يشير الآن إلى مكانٍ آخر، فيصل الفحصُ إلى خادمٍ لم يسمع بالتحدّي قطّ.
  • جدارٌ ناريّ أو جدارُ تطبيقاتٍ يحجب المنفذ 80. فإغلاقُ 80 لأنّ «كلَّ شيءٍ صار https» يُغلق البابَ الذي يأتي منه التجديد.

دع التحدّي يمرّ

location ^~ /.well-known/acme-challenge/ {
    root /var/www/html;
    try_files $uri =404;
}

توضَع تلك الكتلة قبل قاعدة التحويل، فيُجاب التحدّي ويظلّ كلُّ ما عداه ذاهبًا إلى https.

افرض تجديدًا واحدًا وراقبه

certbot renew --dry-run

التشغيلُ الجافّ يؤدّي التبادل كلَّه بلا إنفاق حدٍّ من حدود المعدّل. فإن نجح نجح الحقيقيّ.

و Let's Encrypt تحدّ معدّلَ الإخفاقات المتكرّرة. فأصلح السبب واستعمل ‎--dry-run للاختبار؛ فإعادةُ الأمر الحقيقيّ في حلقةٍ تحبسك خارجًا ساعات.
وعلى استضافة EGPHP يُتولَّى التجديد عنك، وهذه الصفحة لخادمٍ افتراضيّ تديره أنت. وإن أظهرت شهادةٌ مُدارة تحذيرًا يومًا فتلك تذكرةُ دعمٍ لا تغييرُ إعداد.