Để cài đặt chứng thư số SSL cho nginx, bạn thực hiện như sau:
1. Giải nén file đính kèm trong email chúng tôi gửi cho ban sau khi chứng thư số được cấp, sẽ được file certificate.crt và ca-bundle
2. Tải 2 file này lên server, đưa vào trong thư mục /usr/local/ssl/certificate (đây là thư mục hôm trước bạn đã tạo ra để chứa CSR và private key) hoặc bất kì thư mục nào mà bạn muốn (nên đặt ngay cùng đường dẫn ở /etc/nginx)
3. Login vào SSH bằng tài khoản root
4. Lúc này trong thư mục lưu ssl ở bước 2 đã có 3 file: private.key, certificate.crt và ca-bundle.
5. Tạo file cert dưới định dạng .pem ( tạo ra bằng cách chép nội dung các file cert nhập thành 1 file theo thứ tự chính xác sau: private key, file crt, file ca-bundle )
cat private.key > cert.pem
cert.pem
cat certificate.crt >>
cat ca-bundle >> cert.pem
7. Mở file cấu hình của nginx (thường là /etc/nginx/conf/default.conf hoặc /etc/nginx/conf/ssl.conf hoặc /etc/nginx/sites-enabled/domain.conf) và tìm đoạn cấu hình sau:
server {
listen 443;
ssl on;
ssl_certificate /<đường dẫn luu file cert>/cert.pem;
ssl_certificate_key /<đường dẫn lưu file cert>/private.pem;
server_name your.domain.com;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
location / {
root /home/www/public_html/your.domain.com/public/;
index index.html;
}
}
8. Vá lổ hổng SSLv3: tìm chỗ cấu hình ssl
grep -r ssl_protocol /etc/nginx
Tìm dòng config ssl_protocols và thay thế toàn bộ thành như sau:ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
9. Bật Forward Secrecy cho nginx: thêm dòng này phía dưới ssl_protocols hoặc sửa lại như sau nếu đã có:
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!RC4:HIGH:!aNULL:!MD5:!kEDH;
10. Tối ưu thêm SSL cho nginx phía dưới các cấu hình ở trên:
ssl_session_cache shared:SSL:32m;
ssl_buffer_size 1400;
ssl_session_timeout 10m;
11. Kiểm tra config nginx:
nginx -t
Nếu không có error nào xuất hiện thì Khởi động lại nginx:
service nginx restart
12. Mở port 443 trên Firewall (Nếu bạn dùng software firewall như iptables chẳng hạn thì có thể tìm thấy file config tại: iptables -L)
Xin chúc mừng! Chứng chỉ SSL đã được cài đặt thành cộng cho trang web của bạn. Trang web đã có thể truy cập bằng https://
Sau khi cài đặt thành công, bạn có thể kiểm tra lại cert đã được install đúng hay chưa bằng công cụ sau:
https://cryptoreport.websecurity.symantec.com/checker/views/certCheck.jsp