نصب Lets Encrypt SSL با Apache روی Ubuntu 20.04

گواهی Let’s Encrypt یک نوع گواهینامه SSL از نوع رایگان است که به صورت 90 روزه صادر می شود و معتبر است و در اکثر مرورگر های اینترنتی نیز تایید شده و مورد اعتماد است. در این مطلب از پرداز آی تی قصد داریم نحوه نصب، راه اندازی و ایمن سازی وب سرور Apache با گواهی Lets Encrypt روی Ubuntu 20.04 را توضیح دهیم پس با آموزش نصب Lets Encrypt SSL با Apache روی Ubuntu 20.04 همراه ما باشید.
نصب Lets Encrypt SSL با Apache روی Ubuntu 20.04
توجه داشته باشید پیش از شروع موارد زیر را انجام داده باشید.
- ساخت یک کاربر sudo برای Ubuntu 20.04 جهت دسترسی به سرور
- تنظیم IP سرور بر روی دامنه ای که قصد داریم برای آن SSL را نصب و فعال کنیم.
- نصب وب سرور apache روی Ubuntu 20.04 (توجه داشته باشید که تنظیمات هاست مجازی را به درستی انجام داده باشید)
حال که پیش نیاز ها را فراهم ساختیم به دنبال انجام مراحل نصب Lets Encrypt SSL روی سرور Ubuntu 20.04 می رویم.
نصب Certbot
Certbot در حقیقت ابزاری است که مراحل صدور گواهی SSL را برای ساده می کند زیرا به وسیله Certbot می توانیم مراحل صدور یا تمدید گواهی های از نوع Lets Encrypt را به صورت خودکار انجام دهیم. مخزن پیش فرض سیستم عامل شامل بسته نصبی Certbot می شود پس تنها کاری که نیاز است در این مرحله انجام دهیم این است که ابتدا با دستور apt بسته های اساسی سیستم عامل را به روز رسانی کرده و پس از آن ابزار را نصب می کنیم.
sudo apt update
sudo apt install certbot python3-certbot-apache
با اجرا دستور فوق سیستم از شما تاییدیه نصب می خواهد که ابتدا کلید Y و سپس Enter را فشار دهید.
تنظیم Diffie-Hellman
کلید Diffie–Hellman یک روش تبادل امن برای کلید های رمزنگار شده است که پارامتر مورد تایید آن 2048 bit می باشد اما در صورت نیاز به امنیت بیشتر می توان میزان 4096 bit را نیز تنظیم کرد. پیشنهاد می شود روی 2048 تنظیم شود.
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
تنظیم دسترسی HTTPS در فایروال
در صورتی که بر روی سرور خود از فایروال هایی مثل UFW استفاده می کنید باید ابتدا پورت مربوط به پروتکل HTTPS را در فایروال باز کنید به همین منظور می توانیم با تنظیم Apache Full در فایروال، ترافیک های HTTP و HTTPS را برای وب سرور آپاچی باز کنیم. دستورات زیر را به ترتیب اجرا کنید.
sudo ufw allow 'Apache Full'
sudo ufw delete allow 'Apache'
حال وضعیت فعال بودن دسترسی در فایروال با دستور زیر بررسی می کنیم.
sudo ufw status
صدور گواهی Lets Encrypt SSL
برای شروع صدور و دریافت گواهی Lets Encrypt ابتدا دستور زیر را اجرا می کنیم.
sudo certbot --apache
خروجی دستور فوق:
در این قسمت شما باید ایمیل خود را جایگزین ایمیل آبی رنگ کنید و Enter بزنید.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): info@pardazit.com
در مرحله بعدی باید قوانین سرویس دهنده را قبول کرده (A) و Enter بزنید.
Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N
حال سیستم از شما می خواهد نحوه دسترسی به دامنه را مشخص کنید. در صورتی که می خواهید دسترسی بدون www باشد عدد 1 و دسترسی با www عدد 2 را وارد کنید. اگر تمایل دارید به هر دو روش دامنه بر روی https در دسترس باشد بدون انتخاب عدد بر روی Enter کلیک کنید.
Which names would you like to activate HTTPS for? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: paradzit.com 2: www.paradzit.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel):
خروجی:
Obtaining a new certificate Performing the following challenges: http-01 challenge for paradzit.com http-01 challenge for www.paradzit.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/paradzit.com-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/paradzit.com-le-ssl.conf Enabling available site: /etc/apache2/sites-available/paradzit.com-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/paradzit.com-le-ssl.conf
در مرحله بعدی انتخاب کنید که آیا می خواهید ترافیک HTTP به HTTPS ریدایرکت شود یا خیر؟ در صورتی که می خواهید ریدایرکت انجام شود عدد 2 را وارد کرده، در غیر این صورت عدد 1 و در نهایت Enter بزنید.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
پس از این مرحله باید پیام Congratulations! You have successfully enabled و سایر اطلاعات مربوط به گواهی صادر شده نمایش داده شود.
حال دامنه شما باید با وارد کردن آدرس در مرورگر با https برای شما نمایش داده شود.
تنظیم تمدید خودکار Let’s Encrypt
همانطور که توضیح دادیم گواهی های Let’s Encrypt به صورت 3 ماهه یا 90 روزه صادر می شوند و باید پیش از اتمام این زمان تمدید شوند که می توانید فرآیند تمدید را به صورت خودکار انجام دهید.
برای اطمینان از فعال بودن تمدید خودکار دستور زیر را اجرا کنید.
sudo systemctl status certbot.timer
خروجی:
certbot.timer - Run certbot twice daily Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled) Active: active (waiting) since 2020-07-15 11:32:02 UTC; 10h ago Trigger: 2020-07-16 23:54:59 UTC; 19h left Triggers: ● certbot.service fine-turtle systemd[1]: Started Run certbot twice daily.
در این خروجی متوجه می شویم که certbot.timer دو بار در روز وضعیت تمدید گواهی را بررسی می کند.
در اینجا به پایان آموزش نصب Lets Encrypt SSL با Apache روی Ubuntu 20.04 از پرداز آی تی رسیدیم و امیدواریم موفق شده باشید به کمک آموزش نصب Lets Encrypt SSL با Apache روی Ubuntu 20.04 مراحل صدور و نصب گواهی را روی اوبونتو با موفقیت انجام دهید.