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

گواهی Let’s Encrypt یک نوع گواهینامه SSL از نوع رایگان است که به صورت 3 ماهه صادر می شود و معتبر است و در اکثر مرورگر های اینترنتی نیز تایید شده و مورد اعتماد است. این گواهی امروزه کاربرد زیادی پیدا کرده است و استفاده از آن برای کاربران محبوب شده است. متاسفانه آموزش های درستی برای استفاده از این مورد در دسترس نیست و گاها آموزش ها ناقص هستند و شما را به هدفتان نمی رسانند. برای دریافت مشاوره طراحی سایت با مهندس پویا قندی تماس بگیرید.

توسعه فناور پویا فراز

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

برای نصب این گواهی باید به شکل زیر عمل کنید. ابتدا ساخت یک کاربر sudo برای Ubuntu 20.04 جهت دسترسی به سرور تنظیم IP سرور بر روی دامنه ای که قصد داریم برای آن SSL را نصب و فعال کنیم. در هنگام نصب وب سرور apache روی Ubuntu 20.04 توجه داشته باشید که تنظیمات هاست مجازی را به درستی انجام داده باشید.

اولین قدم برای پیشبرد کار این است که Certbot را نصب کنیم. این نرم افزار در حقیقت مراحل صدور گواهی SSL را برای شما ساده می کند، زیرا به وسیله Certbot می توانیم مراحل صدور یا تمدید گواهی های از نوع Lets Encrypt را به صورت خودکار انجام دهیم. مخزن پیش فرض سیستم عامل شامل بسته نصبی Certbot می شود. پس تنها کاری که نیاز است در این مرحله انجام دهیم این است که ابتدا با دستور apt بسته های اساسی سیستم عامل را به روز رسانی کرده و پس از آن ابزار را نصب می کنیم.

sudo apt update
sudo apt install certbot python3-certbot-apache

با اجرا دستور فوق سیستم از شما تاییدیه نصب می خواهد که ابتدا کلید Y و سپس Enter را فشار دهید.
کلید Diffie–Hellman یک روش تبادل امن برای کلید های رمزنگار شده است که پارامتر مورد تایید آن 2048 bit هست اما در صورت نیاز به امنیت بیشتر می توان میزان 4096 bit را نیز تنظیم کرد. پیشنهاد می شود روی 2048 تنظیم شود.

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

نصب SSL

تنظیم دسترسی 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 برای شما نمایش داده شود.

Lets Encrypt SSL

تنظیم تمدید خودکار Lets Encrypt

گواهی های Lets 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 دو بار در روز وضعیت تمدید گواهی را بررسی می کند.

اشتراک گذاری

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.