Sau sự cố Chứng chỉ số SSL miễn phí của Let’s Encrypt hết hạn khiến hàng triệu trang web không thể truy cập tôi đã mua ngay SSL của Comodo tại SSLs.COM để cài cho các website của mình. Lý do tôi chọn SSLs là vì đây là nơi bán rẻ nhất mà tôi biết.
Nội dung chính:
Mua chứng chỉ SSL giá rẻ
Các bạn truy cập vào SSLs.COM để mua chứng chỉ.
Nhớ sử dụng mã giảm giá: MISSU10
để được giảm 10% đơn hàng.
Click vào nút CHECKOUT để tiến hành thanh toán. Họ có hỗ trợ cả Paypal và thẻ tín dụng.
Kích hoạt chứng chỉ SSL
Sau khi mua xong chứng chỉ SSL của bạn sẽ ở trạng thái Unused
(chưa sử dụng) nên bạn hãy ấn vào nút ACTIVATE để tiến hành kích hoạt.
Chuyển qua bước tiếp theo, bạn sẽ nhận được thông báo:
Nội dung thông báo trên đại loại là: Các chứng chỉ phát hành từ ngày 18/08/2020 sẽ có hiệu lực trong 396 ngày. Nếu chứng chỉ bạn mua còn thời hạn sử dụng thì sau 396 ngày bạn cần phải kích hoạt lại SSL để tiếp tục sử dụng.
Bỏ qua thông báo, bạn nhập tên miền muốn đăng ký chứng chỉ SSL rồi ấn nút ONWARDS để tiếp tục.
Bạn ấn nút SAVE KEY.ZIP
để tải private key về máy tính. Lưu ý rằng key này sẽ không được lưu trên ssl.com đâu nên bạn tự lưu trên máy tính để sau muốn cài lại SSL thì còn dùng nhé. Trường hợp bạn làm mất Private key thì phải gửi yêu cầu cấp lại.
Xác minh tên miền
Bạn có thể xác minh quyền sở hữu tên miền bằng cách upload file lên hosting, xác minh qua email hoặc DNS. Tôi thường chọn Upload a validation file
cho nhanh.
Ấn SUBMIT để tiếp tục.
Các bạn ấn vào nút tải file txt kia về nhé. Sau đó upload file TXT này vào thư mục (.well-known/pki-validation/) để đường dẫn nó chính xác như link của bạn là được.
Sau đó ấn CONFIRM FILE UPLOAD để tiếp tục.
Ở bước này bạn phải chờ đợi nhà cung cấp kiểm tra và cấp chứng chỉ số SSL cho tên miền của bạn. Quá trình xác thực có thể mất từ 2–20 phút.
Sau khi chứng chỉ SSL được cấp thì nút DOWNLOAD SSL sẽ xuất hiện để bạn tải về:
Tại trang quản lý SSL bạn sẽ thấy trạng thái của chứng chỉ đã chuyển sang Issued (đã phát hành).
Và chuyển qua bước cài đặt SSL trên máy chủ web.
Cài đặt chứng chỉ SSL trên Nginx
Trong hướng dẫn này, VPS của tôi sử dụng trình quản lý HocVPS Script. Với các server LEMP khác bạn làm tương tự nhé.
Đầu tiên, bạn giải nén 2 file ZIP đã tải từ SSLs về:
Sau khi giải nén sẽ có tất cả 4 file:
- dogothanhtung.vn.ca-bundle
- dogothanhtung.vn.crt
- dogothanhtung.vn.p7b
- dogothanhtung_vn_key.txt
Bạn dùng một phần mềm text editor (chẳng hạn Notepad++) để xem nội dung các file này nhé.
Bước 1: Tạo thư mục chứa file chứng chỉ:
mkdir -p /etc/nginx/ssl/dogothanhtung_vn/ && cd /etc/nginx/ssl/dogothanhtung_vn/
Lưu nội dung file chứng chỉ ở thư mục này, dùng nano:
nano ssl-dogothanhtung.crt
Bạn lấy nội dung file dogothanhtung.vn.crt
dán vào trước, còn dogothanhtung.vn.ca-bundle
dán vào sau. Đại loại sau đó bạn có file ssl-dogothanhtung.crt
chứa nội dung của cả 2 file kia.
Lưu nội dung Private Key chung thư mục:
nano private-dogothanhtung.key
Copy nội dung file dogothanhtung_vn_key.txt
vào rồi Ctrl+O, Enter để lưu. Ctrl+X để thoát.
Bạn cũng có thể có thể tạo sẵn 2 file
ssl-dogothanhtung.crt
vàprivate-dogothanhtung.key
trên máy tính rồi upload vào thư mục/etc/nginx/ssl/dogothanhtung_vn/
cũng được.
Về cái file đuôi .p7b
bạn không cần quan tâm nhé.
Bước 2: Tạo file DH parameters 2048 bit:
File này chỉ phải tạo 1 lần duy nhất với mỗi VPS, nếu bạn tạo rồi thì bỏ qua bước này.
openssl dhparam 2048 -out /etc/nginx/ssl/dhparam.pem
Quá trình generate sẽ mất khoảng 1-2 phút bạn cứ chờ nhé.
Bước 3: Sửa file cấu hình Nginx của tên miền
Tên miền tôi đang cài SSL là
dogothanhtung.vn
thì file cấu hình sẽ có đường dẫn là/etc/nginx/conf.d/dogothanhtung.vn.conf
Để cho đơn giản, tôi thường tải file này về sửa với Notepad++ rồi up ngược lại server. Vì nhìn mã trong Notepad++ dễ hơn sửa với nano.
Trong block server {...}
thứ 2 điều chỉnh như sau:
+ Sửa listen 80 default_server;
thành listen 443 ssl default_server;
Nếu đây không phải tên miền chính thì listen 80;
thành listen 443 ssl;
+ Sau dòng server_name dogothanhtung.vn;
thêm đoạn cấu hình SSL đã được tối ưu:
# SSL ssl_certificate /etc/nginx/ssl/dogothanhtung_vn/ssl-dogothanhtung.crt; ssl_certificate_key /etc/nginx/ssl/dogothanhtung_vn/private-dogothanhtung.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; # Improve HTTPS performance with session resumption ssl_session_cache shared:SSL:50m; ssl_session_timeout 1d; # DH parameters ssl_dhparam /etc/nginx/ssl/dhparam.pem; # Enable HSTS add_header Strict-Transport-Security "max-age=31536000" always;
Trong block server {…}
ở phía trên cùng, sửa:
server_name www.dogothanhtung.vn;
thành
server_name dogothanhtung.vn www.dogothanhtung.vn;
Sửa
rewrite ^(.*) http://dogothanhtung.vn$1 permanent;
thành
rewrite ^(.*) https://dogothanhtung.vn$1 permanent;
Kết quả được như sau:
server { listen 80; server_name dogothanhtung.vn www.dogothanhtung.vn; rewrite ^(.*) https://dogothanhtung.vn$1 permanent; }
Tiếp tục, chèn thêm đoạn code sau lên trên cùng:
server { listen 443 ssl; server_name www.dogothanhtung.vn; # SSL ssl_certificate /etc/nginx/ssl/dogothanhtung_vn/ssl-dogothanhtung.crt; ssl_certificate_key /etc/nginx/ssl/dogothanhtung_vn/private-dogothanhtung.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; rewrite ^(.*) https://dogothanhtung.vn$1 permanent; }
Lúc này toàn bộ URL của web sẽ tự động redirect sang https.
Bước 4: Cấu hình SSL với port quản lý HocVPS Script Admin
Nếu đây là tên miền chính sử dụng HocVPS Script thì bạn cần sửa thêm file dogothanhtung.vn-admin.conf
trong thư mục /etc/nginx/conf.d
nữa.
Ví dụ khi cài đặt HocVPS Script tôi để port mặc định là 2021
. Tại dòng thứ 2 có listen 2021;
sửa thành listen 2021 ssl;
Sau dòng server_name dogothanhtung.vn;
thêm đoạn cấu hình SSL dưới đây:
error_page 497 https://$server_name:$server_port$request_uri; # SSL ssl_certificate /etc/nginx/ssl/dogothanhtung_vn/ssl-dogothanhtung.crt; ssl_certificate_key /etc/nginx/ssl/dogothanhtung_vn/private-dogothanhtung.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
Reload lại Nginx: service nginx reload
và kiểm tra xem web bạn đã hoạt động với chứng chỉ SSL vừa cài chưa?
Nếu các bạn không dùng HocVPS mà dùng Web Server hay Web Panel khác thì cách cài đặt SSL sẽ khác nhau. Tham khảo bài hướng dẫn đầy đủ ở đây.
Xem thêm: Hướng dẫn cài HTTPS sử dụng SSL miễn phí Let’s Encrypt
Và hướng dẫn Chuyển từ HTTP sang HTTPS không bị mất thứ hạng từ khóa SEO