Let's Encrypt هي خدمة مجانية تنشئ شهادات لتأمين موقع الويب الخاص بك. وهو يدعم إنشاء أنواع مختلفة من الشهادات ، بما في ذلك النطاق الواحد وحرف البدل. بالإضافة إلى ذلك ، لديها العديد من الطرق لمصادقة المجال الخاص بك لإنشاء شهادة.
http-01 (HTTP بسيط)
dns-01 (التحقق من DNS)
tls-sni-01(التحقق من خلال استخدام شهادة موقعة ذاتيا - موقوف الآن )
المشكلة
لسوء الحظ ، تم اكتشاف ثغرة أمنية في يناير 2018 حيث أصبح من الممكن إنشاء شهادات للمجالات دون مصادقة / إذن مسبق. على سبيل المثال ، يمكن إنشاء شهادات للمجالات التي لا تملكها بالفعل.
بعد فترة وجيزة ، tls-sni-01توقف البروتوكول ( ) وتم حظر معظم الإصدارات الجديدة (الشهادات الجديدة) من استخدام البروتوكول للمصادقة.
التبديل إلى HTTP بسيط
التبديل إلى http-01أو مصادقة "HTTP البسيط" أمر بسيط إلى حد ما. إذا كنت تستخدم certbot-autoلإنشاء الشهادات الخاصة بك ، فسيكون Let's Encrypt قد أنشأ بالفعل شهادة جديدة أو سيفعل ذلك تلقائيًا أثناء "التجديد" التالي.
إذا كنت تستخدم certbot، يجب عليك استخدام --preferred-challengeالمعلمة:
certbot (...) --prefered-challenge
هذا سيخبر Let's Encrypt للتبديل إليه http-01.
التبديل إلى التحقق من DNS
إذا كنت ترغب في تجنب كل هذه المتاعب ، فمن السهل نسبيًا تكوين ميزة التحقق من DNS الخاصة بـ Let's Encrypt. عند التنفيذ certbot، أضف --preferred-challenges dnsكمعلمة:
certbot -d example.com --manual --preferred-challenges dns
certbot ستقوم بطباعة شيء مشابه لما يلي:
Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:
(random_string)
Once this is deployed,
Press ENTER to continue
بمجرد إضافة السجل مع مزود DNS الخاص بك ، اضغط ENTER. ستحتاج بعد ذلك إلى إعداد وظيفة CRON لتجديد شهادتك تلقائيًا. نظرًا لاستخدام التحقق من نظام أسماء النطاقات ، فلن تقلق بشأن إعادة التوجيه مثلما تفعل http-01، (منفذ 80إلى منفذ 443).