قبل أن تبدأ، يجب أن يشير نطاقك إلى عنوان IP الخاص بخادم VPS عبر سجل A (طريقة ذلك). فمن دون ذلك، لا يمكن إصدار الشهادة. في الأمثلة، النطاق هو mydomain.com.
1. ثبّت Nginx وافتح المنافذ
apt install -y nginx
ufw allow 'Nginx Full'
إذا فتحت عنوان IP الخاص بخادم VPS في المتصفح، فسترى صفحة ترحيب Nginx.
2. موقعك
mkdir -p /var/www/mydomain
echo '<meta charset="utf-8"><h1>It works!</h1>' > /var/www/mydomain/index.html
أنشئ الملف /etc/nginx/sites-available/mydomain:
server {
listen 80;
server_name mydomain.com www.mydomain.com;
root /var/www/mydomain;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
ln -s /etc/nginx/sites-available/mydomain /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
يتحقق nginx -t من عدم وجود أخطاء قبل تطبيق أي شيء.
3. شهادة SSL
apt install -y certbot python3-certbot-nginx
certbot --nginx -d mydomain.com -d www.mydomain.com
سيطلب منك بريدًا إلكترونيًا (لتنبيهك إذا حدث خلل) وأن توافق على الشروط. يضبط Certbot إعدادات Nginx بنفسه، بما في ذلك إعادة التوجيه من HTTP إلى HTTPS.
4. التجديد التلقائي
تدوم الشهادات 90 يومًا، ويجدّدها certbot تلقائيًا. تحقّق من أن التجديد سيعمل:
certbot renew --dry-run
إذا حدث خلل
- لا يستطيع Certbot التحقق من النطاق: تأكّد بالأمر
nslookup mydomain.comمن أنه يشير إلى عنوان IP الخاص بك، ومن أن المنفذ 80 مفتوح. - Cloudflare: يعمل الأمر أيضًا مع السحابة البرتقالية؛ وإذا واجهت مشكلة عند الإصدار، فاجعل السحابة رمادية، وأصدر الشهادة، ثم أعدها إلى البرتقالي.
- أخطاء 502: إذا كان Nginx يعمل كوكيل (proxy) لتطبيق ما (Node أو PHP...)، فهذا التطبيق غير مشغّل أو يستمع على منفذ آخر.