آموزش های سرور لینوکس

نصب Lets Encrypt SSL با NGNIX در CentOS 7

هاست وردپرس

Lets Encrypt از انواع گواهی های SSL رایگان است که به سادگی امکان داشتن SSL بر روی سرویس و سایت را فراهم می کند و قابلیت رمزنگاری HTTPS را فعال می کند. فرآیند صدور و نصب Lets Encrypt شامل مراحل پیچیده ای نمی شود و برای داشتن این نوع گواهی بر روی سرور های لینوکس با اجرا دستوراتی می توان آن را نصب کرد به همین منظور در این مطلب از پرداز آی تی با آموزش نصب Lets Encrypt SSL با NGNIX در CentOS 7 در خدمت شما هستیم.

نصب Lets Encrypt SSL با Apache روی CentOS 7

در ادامه با آموزش نصب نصب Lets Encrypt SSL با NGNIX در CentOS 7 همراه ما باشید تا نحوه صدور و فعالسازی و همچنین تمدید خودکار Lets Encrypt SS بر روی وب سرور NGNIX و سیستم عامل سنتوس 7 را به طور کامل توضیح دهیم.

نصب Lets Encrypt SSL با NGNIX در CentOS 7

پیش از شروع آموزش توجه داشته باشید که وب سرور NGNIX بر روی سرور شما نصب باشد و با دسترسی SSH به سرور خود متصل شوید. همچنین در این آموزش از کاربر sudo برای اجرا دستورات استفاده شده.

حال مرحله به مرحله نصب Lets Encrypt را انجام می دهیم.

نصب Certbot Client

در اولین مرحله ما باید بر روی سرور مجازی یا اختصاصی سنتوس خود نرم افزار Certbot Let’s Encrypt Client را نصب کنیم. برای این مورد باید ابتدا مخزن EPEL را نصب کنیم که شامل Certbot می شود.

sudo yum install epel-release

پس از نصب مخزن با اجرا دستور زیر، Certbot مخصوص وب سرور ngnix را نصب می کنیم.

sudo yum install certbot-nginx

به روز رسانی فایروال سرور

در صورتی که بر روی سرور شما فایروال فعال می باشد باید اطمینان حاصل کنید پورت های 80 و 443 باز هستند. به همین منظور ابتدا دستورات زیر را به ترتیب اجرا کنید.

sudo firewall-cmd --add-service=http
sudo firewall-cmd --add-service=https
sudo firewall-cmd --runtime-to-permanent

حال دستورات زیر را به ترتیب اجرا کنید تا ترافیک ورودی پورت های 80 و 443 باز شود.

sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

صدور و نصب Lets Encrypt SSL

در ادامه نصب Lets Encrypt SSL با NGNIX در CentOS 7 برای شروع مراحل صدور و نصب گواهی SSL از نوع Lets Encrypt ابتدا دستورات زیر را اجرا کنید. نام دامنه خود را جایگزین example.com کنید.

sudo certbot -nginx -d example.com -d www.example.com

اگر برای اولین بار است که بر روی سرور در حال نصب این گواهی هستید با خروجی زیر مواجه می شوید که از شما درخواست وارد کردن ایمیل و پذیرش قوانین می شود.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected] << ایمیل خود را وارد کنید

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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: Y OR N << در صورت تمایل می توانید عضو خبرنامه شوید

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: www.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1 OR 2 << با وارد کردن عدد 1 یا 2 مشخص کنید می خواهید دامنه با چه فرمتی باشد.
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for www.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/www.example.com.conf

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 OR 1 << در این قسمت برای ریدایرکت عدد 2 را مشخص کنید
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/www.example.com.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://www.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=www.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/www.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/www.example.com/privkey.pem
Your cert will expire on 2019-11-02. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again with the "certonly" option. To non-interactively renew *all*
of your certificates, run "certbot-auto renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

حال مراحل صدور و نصب گواهینامه برای دامنه شما به پایان رسیده و با وارد کردن آدرس دامنه خود در مرورگر همراه با https باید دامنه شما در دسترس باشد و در کنار آدرس دامنه علامت قفل فعال باشد.

بررسی گواهی SSL

شما می توانید وضعیت گواهی صادر شده را با رفتن به آدرس زیر بررسی کنید. آدرس سایت خود را جایگزین example.com کنید.

https://www.ssllabs.com/ssltest/analyze.html?d=example.com

به روز رسانی پارامتر های Diffie-Hellman

ممکن است با بررسی گواهی با روش بالا از درجه B برخوردار شوید که می تواند به دلیل ضعف پارامتر های Diffie-Hellman باشد که توضیح می دهیم چطور می توانید این مورد را رفع کنید.

ابتدا با دستور زیر فایلی با نام dhparam.pem ایجاد کنید.

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

حال فایل کانفیگ Ngnix را باز کنید.

sudo vi /etc/nginx/nginx.conf

خط کد زیر را در این فایل قرار دهید.

ssl_dhparam /etc/ssl/certs/dhparam.pem;

تغییرات را ذخیره کرده و دستور زیر را اجرا کنید تا تنظیمات تایید شوند.

sudo nginx -t

حال وب سرور را reload کنید.

sudo systemctl reload nginx

حال می توانید مجدد وضعیت گواهی را بررسی کنید.

تمدید خودکار Lets Encrypt SSL

این نوع از گواهی های SSL به صورت 90 روزه یا 3 ماهه صادر می شوند باید پیش از اتمام این زمان و منقضی شدن گواهی، آنها را تمدید کنید اما تمدید آن به صورت دستی می تواند کار سختی باشد یا حتی با فراموشی زمان آن باعث منقضی شدن SSL شود به همین منظور می توانید سرور خود را به گونه ای تنظیم کنید که تمدید گواهی توسط Cronjob هر دوره خودکار انجام شود.

برای این منظور شما باید یک cron بررسی دوره ای ایجاد کنید که ابتدا باید فایل crontab را باز کنید.

sudo crontab -e

حال دستور زیر را در این فایل وارد کنید و آن را ذخیره کنید.

echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew" | sudo tee -a /etc/crontab > /dev/null

با این دستور شما می توانید تمام گواهی های نوع Lets Encrypt را به صورت خودکار تمدید کنید. فرآیند تمدید برای مواردی که کمتر از 30 روز به زمان انقضا آنها مانده باشد صورت می گیرد.

در اینجا به پایان نصب Lets Encrypt SSL با NGNIX در CentOS 7 از پرداز آی تی رسیدیم و امیدواریم که با استفاده از آموزش نصب Lets Encrypt SSL با NGNIX در CentOS 7 توانسته باشید مراحل صدور، نصب و تمدید خودکار گواهی SSL را بر روی سرور خود انجام داده باشید. در صورتی که سوالی در رابطه با این آموزش دارید می توانید از بخش نظرات با ما در ارتباط باشید.

هاست و دامنه

نوشته های مشابه

6 دیدگاه

  1. خیلی ممنون از آموزش مفید شما، ببخشید من رو سرورم نصب کردم، داخل کلودفلر هم ssl رو حالت full (strict) قرار دادم، دامنه هم دات کام هستش، ولی سایت فقط از طریق vpn باز میشه حالا، میدونین ممکنه مشکل از چی باشه؟

    1. امیر عزیز سلام
      با اینترنت های مختلف تست کنید که آیا سایت بدون سرویس های تغییر IP باز می شود یا خیر؟ مشکل شما به احتمال فراوان مربوط به محدودیت های ISP های داخلی هست.
      معمولا برای حل این مشکل پیشنهاد میشه از CDN های داخلی استفاده بشه تا مشکلی از بابت نمایش سایت وجود نداشته باشه.

  2. سلام.وقتتون به خیر
    آیا میشود به جای نام دومین آدرس آی پی وارد کنیم.؟

    1. سلام محمد عزیز

      گواهینامه SSL بر روی دامنه و یا سابدامین نصب می شود .

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا