Cài đặt Let's Encrypt SSL trên CentOS 7 với Nginx và sử dụng ACME
Bảo mật Nginx trên CentOS 7 là một phần quan trọng của việc duy trì một môi trường web an toàn và đáng tin cậy. Trong bài viết này, chúng ta sẽ tìm hiểu cách thực hiện việc này bằng cách sử dụng SSL Let's Encrypt ACME. Chứng chỉ SSL không chỉ cung cấp mã hóa mạnh mẽ cho dữ liệu truyền tải giữa máy chủ và người dùng mà còn đảm bảo tính toàn vẹn và xác thực của trang web. Hãy cùng nhau khám phá quy trình cài đặt, cấu hình và duy trì chứng chỉ SSL để bảo vệ máy chủ Nginx của bạn trước những rủi ro an ninh trực tuyến.
Tiến hành bảo mật Nginx bằng install SSL Let's Encrypt ACME trên CentOS 7
Quy trình để đạt được một chứng chỉ SSL như sau:
1. Tải phần mềm acme.sh:
git clone https://github.com/Neilpang/acme.sh.git
2. Tạo thư mục /.well-known/acme-challenge/
mkdir -p /var/www/html/.well-known/acme-challenge/
3. Đạt được chứng chỉ SSL cho tên miền của bạn
acme.sh --issue -w /DocumentRootPath/ -d your-domain
4. Cấu hình TLS/SSL trên Nginx
vi /etc/nginx/sites-available/default
5. Thiết lập công việc cron để tự động gia hạn
6. Mở cổng 443 (HTTPS)
sudo firewall-cmd --add-service=https
Quá trình instll ACME.SH Client
Hãy xem cách cài đặt client acme.sh và sử dụng nó trên CentOS/RHEL 7 để đạt được chứng chỉ SSL từ Let's Encrypt.
Bước 1 - Cài đặt phần mềm cần thiết
Cài đặt các gói git, wget, curl và bc bằng lệnh yum.
$ sudo yum install git bc wget curl
Bước 2 - Cài đặt client acme.sh Let’s Encrypt
Sao chép repo:
$ cd /tmp/
$ git clone https://github.com/Neilpang/acme.sh.git
Cài đặt client acme.sh lên hệ thống của bạn bằng lệnh sau.
$ cd acme.sh/
$ sudo -i
# ./acme.sh --install
Sau khi cài đặt, bạn phải đóng cửa sổ terminal hiện tại và mở lại để đặt tên gọi vào hiệu lực hoặc đơn giản là gõ lệnh nguồn sau:
source ~/.bashrc
Bước 3 - Tạo thư mục acme-challenge
Gõ lệnh mkdir sau đây. Đảm bảo bạn đặt D thành đường dẫn DocumentRoot thực tế theo nhu cầu của bạn.
# D=/usr/share/nginx/html
# mkdir -vp ${D}/.well-known/acme-challenge/
###---[ NOTE: Adjust permission as per your setup ]---###
# chown -R nginx:nginx ${D}/.well-known/acme-challenge/
# chmod -R 0555 ${D}/.well-known/acme-challenge/
Cũng tạo thư mục để lưu trữ chứng chỉ SSL:
mkdir -p /path/to/your/document/root/.well-known/acme-challenge/
mkdir -p /etc/nginx/ssl/
Bước 4 - Tạo tệp dhparams.pem
Chạy lệnh openssl:
# cd /etc/nginx/ssl/your_domain.com/
# openssl dhparam -out dhparams.pem -dsaparam 4096
Bước 5 - Đạt được chứng chỉ cho tên miền
Phát chứng chỉ cho tên miền của bạn:
acme.sh --issue -w /path/to/www/htmlRoot/ -d example.com -k 2048
sudo acme.sh --issue -w /usr/local/nginx/html -d server2.your_domain.com -k 2048
Bước 6 - Cấu hình Nginx
Bạn vừa đạt được thành công một Chứng chỉ SSL từ Let’s Encrypt cho máy chủ CentOS 7 hoặc RHEL 7. Đến lúc cấu hình nó. Chỉnh sửa default.ssl.conf:
vi /etc/nginx/conf.d/default.ssl.conf
Thêm cấu hình sau:
## START: SSL/HTTPS server2.your_domain.com ###
server {
#------- Start SSL config with http2 support ----#
listen 10.21.136.134:443 http2;
server_name server2.your_domain.com;
ssl on;
ssl_certificate /etc/nginx/ssl/your_domain.com/server2.your_domain.com.cer;
ssl_certificate_key /etc/nginx/ssl/your_domain.com/server2.your_domain.com.key;
ssl_session_timeout 30m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
ssl_session_cache shared:SSL:10m;
ssl_dhparam /etc/nginx/ssl/your_domain.com/dhparams.pem;
ssl_prefer_server_ciphers on;
## Improves TTFB by using a smaller SSL buffer than the nginx default
ssl_buffer_size 8k;
## Enables OCSP stapling
ssl_stapling on;
resolver 8.8.8.8;
ssl_stapling_verify on;
## Send header to tell the browser to prefer https to http traffic
add_header Strict-Transport-Security max-age=31536000;
## SSL logs ##
access_log /var/log/nginx/ssl_access.log;
error_log /var/log/nginx/ssl_error.log;
#-------- END SSL config -------##
# Add rest of your config below like document root, php and more ##
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# Allow php apps
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
## END SSL server2.your_domain.com ######
Lưu và đóng tệp trong trình soạn thảo vi/vim.
Bước 7 - Cài đặt chứng chỉ
Cài đặt chứng chỉ đã đạt được lên máy chủ Nginx:
# acme.sh --installcert -d server2.your_domain.com \
--keypath /etc/nginx/ssl/your_domain.com/server2.your_domain.com.key \
--fullchainpath /etc/nginx/ssl/your_domain.com/server2.your_domain.com.cer \
--reloadcmd 'systemctl reload nginx'
Đảm bảo rằng cổng đã được mở bằng cách sử dụng lệnh ss hoặc lệnh netstat:
ss -tulpn
hoặc
netstat -tuln | grep 443
Bước 8 - Cấu hình tường lửa
Bạn cần mở cổng 443 (HTTPS) trên máy chủ để khách hàng có thể kết nối. Cập nhật các quy tắc như sau:
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload
Bước 9 - Kiểm tra
Mở trình duyệt web và nhập tên miền của bạn, chẳng hạn như:
https://your_domain.com
Kiểm tra nó với trang kiểm tra SSLlabs.
https://www.ssllabs.com/ssltest/analyze.html?d=server2.your_domain.com
Bước 10 - Lệnh acme.sh
Liệt kê tất cả các chứng chỉ:
acme.sh --list
Gia hạn chứng chỉ cho tên miền:
acme.sh --renew -d server2.your_domain.com
Không cần thực hiện bất kỳ hành động nào từ phía bạn vì một công việc cron sẽ cố gắng gia hạn chứng chỉ tự động. Để xem công việc chạy, sử dụng lệnh:
crontab -l
Nâng cấp client acme.sh:
acme.sh --upgrade
Để có sự trợ giúp:
acme.sh --help
Kết luận
Bạn đã học cách install / cài đặt và thiết lập chứng chỉ TLS/SSL từ Let’s Encrypt acme.sh trên máy chủ CentOS Linux 7 của mình để bảo vệ Nginx. Xem trang chủ dự án acme.sh tại đây để biết thêm thông tin, nếu có thắc mắc, liên hệ với chúng tôi để được giải đáp.
Đến với Chứng chỉ SSL của KDATA. Với chúng tôi, an ninh mạng không còn là nỗi lo. Bảo vệ thông tin trực tuyến của bạn bằng cách mua Chứng chỉ SSL tại KDATA, giúp giảm thiểu rủi ro và tăng cường sự an toàn cho website của bạn. Hãy đầu tư vào sự an toàn ngay hôm nay với KDATA!
https://kdata.vn/ssl-certificate
👉 Liên hệ ngay KDATA hỗ trợ tận tình, support tối đa, giúp bạn trải nghiệm dịch vụ giá hời chất lượng tốt nhất