Bảo mật / Firewall

Cài đặt Let’s Encrypt trên CentOS 7

Cài đặt Let's Encrypt trên CentOS 7

Let’s Encrypt là Tổ chức phát hành chứng chỉ (CA) mới, cung cấp cách dễ dàng để lấy và cài đặt chứng chỉ TLS / SSL miễn phí, cho phép HTTPS được mã hóa trên máy chủ web. Đơn giản hóa quy trình bằng cách cung cấp một ứng dụng Certbot, tự động hóa hầu hết các bước cần thiết. Hiện tại, toàn bộ quá trình lấy và cài đặt chứng chỉ hoàn toàn tự động trên cả máy chủ web Apache và Nginx. Chứng chỉ do Let’s Encrypt cấp được hầu hết các trình duyệt hiện nay tin dùng.

Điều kiện để cài đặt Let’s Encrypt

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cách sử dụng ứng dụng certbot Let’s Encrypt để lấy chứng chỉ SSL miễn phí và sử dụng nó với Nginx trên CentOS 7. Chúng tôi cũng sẽ hướng dẫn bạn cách tự động gia hạn chứng chỉ SSL.

Cập nhật hệ thống

Chạy lệnh:
# sudo yum -y update

-y là một tham số tùy chọn. Nó phục vụ để tránh các câu hỏi xác nhận ở các bước tiếp theo.

Cài đặt gói bổ sung EPEL

Let’s Encrypt không có sẵn trong CentOS, vì vậy bạn cần cài đặt EPEL (Extra Packages for Enterprise Linux) có sẵn trên máy chủ. EPEL được sử dụng miễn phí và cung cấp nhiều gói mã nguồn mở.

Để cài đặt EPEL, chạy lệnh:

# sudo yum install -y epel-release

Nếu bạn đã cài đặt EPEL, bạn có thể bỏ qua bước này

Cài đặt Certbot

Certbot là một công cụ dễ sử dụng có thể tự động hóa các tác vụ lấy và gia hạn chứng chỉ SSL của Let’s Encrypt và định cấu hình máy chủ web.

Để cài đặt certbot từ kho EPEL, chạy lệnh:

# sudo yum install certbot

Khởi động lại Nginx:

# sudo systemctl restart nginx

Nhận chứng chỉ SSL

Trong hướng dẫn này chúng tôi lấy domain là example.com.

Để cài đặt một Website có https chúng ta dùng lệnh:

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

Certbot sẽ hỏi bạn muốn định cấu hình cài đặt HTTPS của mình như thế nào:

Đầu ra như sau

Please choose whether HTTPS access is required or optional.
——————————————————————————-
1: Easy – Allow both HTTP and HTTPS access to these sites
2: Secure – Make all requests redirect to secure HTTPS access
——————————————————————————-
Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel):

Nếu đã cấu hình SLL cho domain trong /etc/nginx/conf.d/example.com.conf thì chọn là 1
Nếu là Website mới thì chọn 2 để Let’s Encrypt tự động cấu hình SSL cho tệp virtual host example.com.conf.

Nếu thành công thì sẽ hiện lên thông báo như sau:

IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2020-10-23. To obtain a new or tweaked version of this
certificate in the future, simply run certbot again with the
“certonly” option. To non-interactively renew *all* of your
certificates, run “certbot 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

Cập nhật thông số Diffie-Hellman

Để sửa lỗi trao đổi khóa ban đầu giữa máy chủ và người dùng. Chúng ta có thể nâng cao bảo mật bằng cách tạo một tập tin dhparam.pem mới và thêm nó vào khối máy chủ.

Tạo một tệp dhparam.pem bằng cách chạy lệnh:

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

Mở tệp nginx.conf:

# sudo nano /etc/nginx/nginx.conf

Thêm vào trong block {…}

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

Kiểm tra lại cài đặt:

# sudo nginx -t

Đầu ra như bên dưới là đã thành công:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Khởi động lại Nginx:

# sudo systemctl restart nginx

Thiết lập tự động gia hạn

Chứng chỉ Let’s Encrypt có thời hạn là 90 ngày, nếu muốn dùng tiếp chúng ta phải tạo một cron chạy tự động trước khi hết hạn.

Để chạy gia hạn theo định kỳ chúng ta cần mở crontab:

# crontab -e

Dán vào dòng dưới cùng nội dung sau:

15 3 * * 1 /usr/bin/certbot renew --quiet

Cron trên chạy định kỳ vào 3:15 AM thứ 2 hàng tuần.

Kết thúc bài viết !

Rate this post

Bài viết liên quan