بلاگ/آموزش پیکربندی nginx با Let’s Encrypt در CentOS 8
بهروز شده
آموزش پیکربندی nginx با Let’s Encrypt در CentOS 8
چگونه میتوان وب سرور nginx را با گواهینامه رایگان ssl بروی سرور CentOS 8 امن کرد؟ Let’s Encrypt یک گواهینامه رایگان،اتوماتیک و باز برای وب سایت و ایمیل سرور شماست. در این مقاله قصد داریم نحوه نصب این گواهینامه برای وب سرور nginx، آموزش پیکربندی nginx و دریافت رتبه A+ بروی CentOS 8 را نمایش دهیم.
1398/10/284581 بازدید
چگونه میتوان وب سرور nginx را با گواهینامه رایگان ssl بروی سرور CentOS 8 امن کرد؟
Let’s Encrypt یک گواهینامه رایگان،اتوماتیک و باز برای وب سایت و ایمیل سرور شماست.
در این مقاله قصد داریم نحوه نصب این گواهینامه برای وب سرور nginx، آموزش پیکربندی nginx و دریافت رتبه A+ بروی CentOS 8 را نمایش دهیم.
چگونگی ایمن سازی و آموزش پیکربندی nginx با Let’s Encryptدر CentOS 8
روند دریافت گواهینامه ssl به شرح زیر است:
۱) دریافت نرم افزار acme.sh
1sudo acme.sh --issue -d c8nginx.cyberciti.biz -k 2048 --nginx23## for two domains ##45sudo acme.sh --issue -d c8nginx.cyberciti.biz -d www.cyberciti.biz -k 2048 --nginx67## get certs for three domains ##89sudo acme.sh --issue -d cyberciti.biz -d c8nginx.cyberciti.biz -d www.cyberciti.biz -k 2048 --nginx1011## let us get cert for c8nginx.cyberciti.biz domain only ##1213sudo acme.sh --issue -d c8nginx.cyberciti.biz -k 4096 --nginx
CentOS8 Obtain Lets Encrypt certificate for domainقدم ششم: پیکربندی nginx
تا به اینجا شما درخواست موفقیت آمیز خود برای دریافت گواهینامه ssl از Let’s Encryptبرای سرور لینوکس centOS 8 را ارسال کردید.
اینک زمان پیکربندی آن است.
برای بروزرسانی پیکربندی ssl از کد زیر استفاده نمایید:
php
1<pre>$ sudo vi /etc/nginx/conf.d/c8nginx.cyberciti.biz.conf
کد زیر را نیز ضمیمه کنید:
php
1</pre>23## http port 80: START http://c8nginx.cyberciti.biz/ config ##45server {67listen 80;89listen [::]:80;1011access_log /var/log/nginx/http_c8nginx.cyberciti.biz_access.log;1213error_log /var/log/nginx/http_c8nginx.cyberciti.biz_error.log;1415server_name c8nginx.cyberciti.biz;1617root /usr/share/nginx/html;1819#2021# redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.2223#2425return 301 https://$host$request_uri;2627}2829## https port 443: START https://c8nginx.cyberciti.biz/ config ##3031server {3233listen 443 ssl http2;3435listen [::]:443 ssl http2;3637server_name c8nginx.cyberciti.biz;3839root /usr/share/nginx/html;4041# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate4243ssl_certificate /etc/nginx/ssl/cyberciti.biz/c8nginx.cyberciti.biz.cer;4445ssl_certificate_key /etc/nginx/ssl/cyberciti.biz/c8nginx.cyberciti.biz.key;4647ssl_session_timeout 1d;4849ssl_session_cache shared:MozSSL:10m; # about 40000 sessions5051ssl_session_tickets off;5253ssl_dhparam /etc/nginx/ssl/cyberciti.biz/dhparams.pem;5455#5657# Supports Firefox 27, Android 4.4.2, Chrome 31, Edge, IE 11 on Windows 7, Java 8u31, OpenSSL 1.0.1, Opera 20, and Safari 9 and above5859#6061ssl_protocols TLSv1.2 TLSv1.3;6263ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;6465ssl_prefer_server_ciphers off;6667# HSTS (ngx_http_headers_module is required) (63072000 seconds)6869add_header Strict-Transport-Security "max-age=63072000" always;7071# OCSP stapling7273ssl_stapling on;7475ssl_stapling_verify on;7677# replace with the IP address of your resolver7879resolver 8.8.8.8;8081## add other config below such as fastcgi or php and so on ##82<pre>}
برای اطمینان از باز بودن پورت OS از دستور ss ویا netstat استفاده کنید.
php
1# ss -tulpn
قدم هفتم: پیکربندی firewall
در این مرحله شما نیاز دارید پورت ۴۴۳ (https) باز کنید تا client ها بتوانند متصل شوند.
دستورات را با استفاده از دستور زیر به روز نمایید:
قدم هشتم: تست و بررسی
مرورگر خود را باز کنید و نام دامنه خود را تایپ کنید:
https://c8nginx.cyberciti.biz
گواهینامه خود را با سایت های بررسی ssl امتحان کنید.
https://www.ssllabs.com/ssltest/analyze.html?d=c8nginx.cyberciti.biz
قدم نهم: دستورات acme.sh
تمامی گواهینامه های خود را به دستور زیر لیست کنید:
php
1<pre># acme.sh --list
برخی خروجی ها:
php
1Main_Domain KeyLength SAN_Domains Created Renew2c8nginx.cyberciti.biz "4096" no Mon Dec 30 16:57:10 UTC 2019 Fri Feb 28 16:57:10 UTC 2020
دستور تمدید مجوز دامنه با نام c8nginx.cyberciti.biz:
php
1# acme.sh --renew -d c8nginx.cyberciti.biz
توجه داشته باشید که Cron job وظیفه به روز رسانی گواهینامه شما را به عهده دارد که به صورت زیر نصب میگردد و نیاز به هیچ کاری از سمت شما نیست.
برای دیدن job کد زیر را اجرا نمایید: