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

clon acme repo

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

install acme.sh client centos 7

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

obtain ssl letsencrypt acme cert

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'

install lets encrypt acme cert

Đả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

ssl letsencrypt acme nginx centos 7

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