استخدام Let's Encrypt Certbot للحصول على HTTPS في صندوق Amazon EC2 NGINX الخاص بك

Let's Encrypt هو مرجع تصديق جديد يوفر شهادات SSL مجانية (تصل إلى حد معين في الأسبوع). لقد خرج من الإصدار التجريبي منذ حوالي شهر وهو مدعوم من قبل مجموعة واسعة من المتصفحات.

Certbot هو العميل الرسمي Let's Encrypt ، الذي طورته مؤسسة Electronic Frontier Foundation. يجعل جلب ونشر شهادات SSL / TLS لخادم الويب الخاص بك عملية مباشرة نسبيًا.

هيا بنا نبدأ.

الخطوة 1

تأكد من فتح المنفذين 80 (HTTP) و 443 (HTTPS) في المثيل الخاص بـ Security Group للجمهور. سيستخدم Certbot هذا لإنشاء اتصالات أثناء إنشاء شهاداتك.

لاحظ أنني قضيت وقتًا طويلاً جدًا لمعرفة سبب عدم تمكني من إنشاء شهادة ، بينما كانت المشكلة الوحيدة هي أنني لم أفتح المنفذ 443 في مجموعة أمان مثيل EC2 الخاصة بي.

الخطوة 2

قم بإعداد سجل CNAME لنطاقك للإشارة إلى DNS العام لمثيل EC2 الخاص بك.

الخطوه 3

قم بتثبيت Certbot على المثيل الخاص بك. بناءً على نظام التشغيل والخادم لديك ، يمكنك معرفة كيفية تثبيته على الصفحة الرئيسية لـ Certbot. بالنسبة إلى NGINX على Ubuntu 14.04 ، استخدم هذا.

wget //dl.eff.org/certbot-auto chmod a+x certbot-auto

قم بتشغيل هذا الأمر في الدليل الرئيسي الخاص بك:

/home/ubtuntu

الخطوة رقم 4

أوقف أي خوادم حالية تعمل على المنفذين 80 و 443 ، حيث يتم استخدام تلك الخوادم بواسطة Certbot للتحقق من نطاقك وإنشاء الشهادات.

يمكنك إعادة تشغيل هذه الخوادم بمجرد الانتهاء من إنشاء الشهادات.

الخطوة رقم 5

قم بتشغيل الأمر التالي لإنشاء شهادات لمجالك:

./certbot-auto certonly --standalone -d xyz.yourdomain.com

يمكنك إنشاء شهادات لمجالات متعددة باستخدام هذا الأسلوب.

الخطوة رقم 6

قم بتغيير تكوين NGINX الخاص بك في /etc/nginx/nginx.conf لتمكين SSL:

http { ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; server { listen 80; server_name xyz.yourdomain.com; location / { # Redirect any http requests to https return 301 //$server_name$request_uri; } } server { listen 443 ssl; server_name xyz.yourdomain.com; ssl_certificate /etc/letsencrypt/live/xyz.yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/xyz.yourdomain.com/privkey.pem; add_header Strict-Transport-Security “max-age=31536000”; location / { proxy_pass //127.0.0.1:3000; } } }

يضمن رأس Strict-Transport-Security (HSTS) توجيه أي روابط داخلية ليست HTTPS تلقائيًا إلى إصدار HTTPS أثناء جلسة HTTPS.

الخطوة رقم 7

أخيرًا ، أعد تحميل تكوين NGINX الخاص بك:

sudo service nginx reload

تهانينا! موقعك xyz.example.com يعمل الآن بنجاح على HTTPS.

ملاحظة : شهادات Let's Encrypt صالحة فقط لمدة 3 أشهر بعد الإصدار. لذلك كل 3 أشهر ، التجديد مطلوب. إليك كيف يمكنك أتمتة هذا باستخدام وظيفة cron.

إذا ساعدك هذا المنشور ، فاضغط على زر القلب أدناه. ؟ وإذا لم يحدث ذلك ، فالرجاء ترك تعليق ليخبرني كيف يمكنني تحسينه.

ملاحظة: شكرًا لـ Narendra N Shetty على التدقيق اللغوي وتقديم الاقتراحات.

كاران ثكار هو قائد الواجهة الأمامية في Crowdfire - رفيقك التسويقي الفائق الذكاء . تم عرض مقالته سابقًا على هافينغتون بوست. إنه يحب تجربة التقنيات الجديدة في وقت فراغه وقد صمم Tweetify (باستخدام React Native) و Show My PR's (باستخدام Golang).

مقالات أخرى كتبها:

كيف نمت من 300 إلى 5 آلاف متابع في 3 أسابيع فقط

#GrowthHacking حسابي على Twitter لـCrowdfire Twitter Premier League blog.markgrowth.com دليل مصور لإعداد موقع الويب الخاص بك باستخدام Github & Cloudflare

سهل الإعداد ، النشر الفوري ، HTTPS المجاني ، HTTP2 / SPDY Suport ، إعادة التوجيه المخصص ، انتهاء صلاحية ذاكرة التخزين المؤقت للمتصفح ، تأمين HTTP ... medium.freecodecamp.org