بازگشت به بلاگ →
گواهی ssl رایگان let's encrypt خودکار با استفاده از certbot و cloudflare در ubuntu

Technical Blog

گواهی ssl رایگان let's encrypt خودکار با استفاده از certbot و cloudflare در ubuntu

گواهی ssl رایگان let's encrypt خودکار با استفاده از certbot و cloudflare در ubuntu

گام اول: نصب certbot و پلاگین:

SSH
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot --yes
sudo apt-get install python3-certbot-dns-cloudflare --yes

وارد پنل cloud flare خود شده و در پروفایلمان در زبانه ی API Tokens روی دکمه view مربوط به Global API Key کلیک می کنیم و پس از تکمیل captcha رشته ی نشانه ی نمایش داده شده را کپی می کنیم.

یک فایل خالی ( مثل cf.ini ) در مسیر دلخواه خود (مثلا /home) میسازیم و مقادیر زیر را در آن وارد کرده و ذخیره می کنیم:

SSH
sudo nano /home/cf.ini
SSH
dns_cloudflare_email = آدرس ایمیل پروفایلمان در cloudflare
dns_cloudflare_api_key = رشته نشانه ای که کپی کردیم

سپس مجوز صحیح به آن میدهیم:

SSH
sudo chmod 600 /home/cf.ini

حالا یک فایل اجرایی میسازیم به نام دلخواه خودمان مثلاْ (autocert.sh) و مقادیر زیر را با جایگزین کردن email و نام دامنه خودمان در آن وارد می کنیم:

SSH
#!/bin/sh
certbot certonly \
--non-interactive \
--dns-cloudflare \
--dns-cloudflare-credentials /home/cf.ini \
--manual-public-ip-logging-ok \
--agree-tos \
-m myemail@example.ir \
-d example.ir \
-d *.example.ir

اکنون فایل خود را از نوع اجرایی می کنیم:

SSH
sudo chmod +x /home/autocert.sh

با اجرای این فایل گواهی ها دریافت شده و در سیستم ذخیره می شوند.

SSH
sudo /home/autocert.sh

برای خودکار سازی نوسازی می توانیم از cron job استفاده کنیم.

SSH
sudo crontab -e
SSH
30 2 * * 1 /home/autocert.sh >> /var/log/le-renew.log
35 2 * * 1 /bin/systemctl reload nginx