Bài viết ngày hôm nay mình sẽ hướng dẫn bạn cách cài đặt chứng chỉ miễn Let’s Encrypt SSL cho website.
Bước 1: Cài đặt Cerbot Let’s Encrypt Client
Mình chọn Certbot client vì nó giúp cho việc cài đặt Let’s Encrypt trở nên dễ dàng. Xem thêm: Giới thiệu Let’s Encrypt là gì, tại sao ai cũng cần dùng tới Let’s Encrypt Đầu tiên bạn cần cài đặt EPEL repository:yum install epel-releaseBây giờ thì cài đặt certbot-nginx bằng câu lệnh sau:
yum install certbot-nginx
Bước 2: Thực hiện chuyển hướng www về không có www với NGINX
Trong trường hợp này mình sẽ chuyển hướng từ www về non-www. Khi thêm domain chúng ta đã có một file cấu hình nginx ví dụ:/etc/nginx/domains/khamphaso.com.conf.Tạo thêm một file cấu hình nginx cho domain (thay tên domain của mình bằng của bạn):
nano /etc/nginx/domains/khamphaso.com.redirect.confCopy và dán đoạn code này vào:
server { server_name www.example.com; return 301 $scheme://example.com$request_uri; }Lưu lại và thoát khỏi nano. Khởi động lại nginx: systemctl restart nginx
Bước 3: Đạt chứng chỉ
Lấy chứng chỉ và cài đặt cho domain bạn muốn:certbot --nginx -d example.com -d www.example.comNếu lần đầu tiên bạn chạy nó sẽ hỏi địa chỉ email của bạn. Tiếp đó nó hỏi bạn muốn nhận email hay không, bạn hãy chọn không. Cuối cùng nó hỏi cách cấu hình HTTPS bạn chọn cho an toàn. Chứng chỉ Let’s Encrypt chỉ có hiệu lực trong 90 ngày. Do vậy bạn cần tạo cronjob tự động gia hạn:
export VISUAL=nano; crontab –eThêm dòng này vào:
15 3 * * * /usr/bin/certbot renew --quietNghĩa là: Chạy lệnh gia hạn vào lúc 3h15 sáng. Nếu chứng chỉ chưa hết hạn thì nó không làm gì cả.
Bước 4: Cập nhật các tham số Diffe-Hellman
Nếu lúc này bạn test website bằng SSL Labs Server Test bạn sẽ chỉ đạt điểm B. Để giải quyết vấn đề này, bạn chạy lệnh sau:openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048Sau khi thành công, bạn mở file cấu hình nginx ra:
nano /etc/nginx/domains/khamphaso.com.confPaste dòng sau vào khối server:
ssl_dhparam /etc/ssl/certs/dhparam.pem;Mặc định phần cấu hình CertBot không cấu hình http2 bạn sửa lại:
Bước 5: Kích hoạt HTTP/2 cho NGINX trên CentOS
Như vậy bạn đã hoàn tất cài đặt chứng chỉ Let’s Encrypt trên CentOS 7.Theo nguồn: thuthuatwp.com