Hướng dẫn cài đặt chứng chỉ SSL trên Nginx

Chứng chỉ SSL cho website được xem là việc bảo mật quan trọng đối với website. Bài viết này hướng dẫn cài đặt chứng chỉ SSL trên Nginx.

Lấy các file cần thiết từ chứng chỉ định dạng pkcs12

Chúng sẽ cần chương trình openssl (version 3) để lấy các file cần thiết.

Đầu tiên chúng ta sẽ lấy private key:

openssl pkcs12 -in file_cert.pfx -out private.key -nocerts -legacy -nodes

Nhập password để lấy private key,

Tiếp theo sẽ lấy file certificate

openssl pkcs12 -in file_cert.pfx -out certificate.pem -nokeys -legacy -nodes

Lưu 2 file trong thư mục 1 thư mục để nginx có thể đọc. Ở đây mình lưu ở thư mục

/etc/ssl/blog.theta.vn

Cấu hình file nginx cho domain

server {
    server_name blog.theta.vn;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_redirect off;     
    }   
		
		# Bên dưới là phần cấu hình ssl đoạn trên tùy từng chường trình chúng ta sẽ cấu hình khác nhau.
		listen 443 ssl http2;
		ssl_certificate /etc/ssl/blog.theta.vn/certificate.pem; # File lấy ở trên
		ssl_certificate_key /etc/ssl/blog.theta.vn/private.key; # File lấy ở trên    
		
		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";

}

server {
    if ($host = blog.theta.vn) {
        return 301 https://$host$request_uri;
    }
    server_name blog.theta.vn;
    listen 80;
    return 404;
}

Kết luận

Với ssl, nó giúp cho website bảo mật hơn nhờ mã hóa các đoạn dữ liệu trao đổi qua lại giữa server và browser. Đáp ứng một số tiêu chuẩn để kết hợp với các ứng dụng của bên thứ 3 cũng như phù hợp hơn với việc tối ưu SEO.