کدگذاری SSL/TLS بخشی جدایی‌ناپذیر از زیرساخت شبکه محسوب می‌شود. در تمام سرورهای وب و ایمیل امکان فعالسازی کدگذاری داده‌ها وجود دارد. در این مطلب نگاهی خواهیم داشت به فرآیند دستیابی به گواهی رایگان SSL در ابزار Let’s Encrypt.

اول از همه باید یک عنوان دامین در اختیار داشته باشید. رکورد A سرور DNS آن می‌بایست حاوی آدرس عمومی سرور شما باشد. همچنین اگر فایروال فعالی دارید، باید دسترسی به ترافیک HTTP و HTTPS را باز کنید.


sudo ufw allow 80

sudo ufw allow 443

گام ۱) نصب بسته Let’s Encrypt

فرآیند نصب بسته Let’s Encrypt و متعلقات آن بسیار ساده است. برای این منظور، فرمان زیر را تایپ کنید.


sudo apt install letsencrypt

این فرمان باعث می‌شود که ابزار certbot.timer نیز به همراه بسته Let’s Encrypt نصب شود که برای تازه‌سازی خودکار گواهی به کار می‌رود. certbot.timer اعتبار گواهی‌های SSL را در سیستم دو بار در روز بررسی می‌کند و آنهایی را که در ۳۰ روز آینده اعتبارشان به پایان می‌رسد، اضافه می‌کند. برای اطمینان از اجرای این ابزار، داریم:


sudo systemctl status certbot.timer

تنظیمات و شرایط مختلفی برای دستیابی به یک گواهی وجود دارند. در ادامه نگاهی به مواردی از این دست خواهیم داشت.

گام ۲) سرور جداگانه برای دریافت گواهی SSL ابزار Let’s Encrypt

ساده‌ترین راه برای دریافت یک گواهی SSL استفاده از یک گزینه سرور جداگانه در Certbot است. در فرمان زیر حتماً دقت کنید که domain-name.com را با دامین خودتان جایگزین کنید. سپس دستورالعمل‌های مربوطه را دنبال نمایید.


sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d domain-name.com

گزینه certonly به این معناست که گواهی فقط به صورت «بدون نصب» در سرور وب به‌دست می‌آید. standalone نیز به شما اجازه می‌دهد که سرور خودتان را برای تأیید ورودی استفاده کنید. همچنین agree-tos به معنای قبول توافق عضویت سرور ACME است که یک پیش‌نیاز محسوب می‌شود. گزینه preferred-challenges http نیز به معنای اجرای تأییدیه با استفاده از HTTP است.

گام ۳) نصب خودکار گواهی SSL در وب‌سرور‌های nginx و آپاچی

Certbot این امکان را دارد که گواهی را به صورت اتوماتیک در وب‌سرورهای nginx و آ‌پاچی نصب کند. برای این منظور، باید یک بسته اضافی نصب کرده و یک نمونه مناسب از آن برای وب‌سرورتان انتخاب کنید.


apt install python3-certbot-nginx

apt install python3-certbot-apache

فرمان زیر را برای nginx اجرا نمایید.


sudo certbot --nginx --agree-tos --preferred-challenges http -d domain-name.com

و یا فرمان زیر برای آپاچی مورد استفاده قرار می‌گیرد.


sudo certbot --apache --agree-tos --preferred-challenges http -d domain-name.com

دستورالعمل‌ها را دنبال کنید تا Certbot برایتان یک گواهی SSL نصب کند.

گام ۴) گواهی SSL وایلدکارد Let’s Encrypt

تنها روش ممکن برای ایجاد یک گواهی وایلدکارد استفاده از DNS خواهد بود. در پارامتر d می‌بایست  دامین و وایلدکارد را با هم مشخص کنید. توضیح اینکه گواهی وایلدکارد برای تمام زیردامنه‌ها قابل‌استفاده است.


sudo certbot certonly --manual --agree-tos --preferred-challenges dns -d domain-name.com -d *.domain-name.com

سپس رکورد خاص TXT را در سرور DNS قرار دهید و کار را ادامه دهید.

اگر همه‌چیز به خوبی پیش رفته باشد، مسیری را خواهید دید که گواهی جدید وایلدکارد در آن ذخیره شده است. همچنین برخی اطلاعات دیگر برایتان به نمایش درمی‌آید.