SSL là cơ chế bảo mật, cho phép chuyển đổi từ HTTP
thành HTTPS
HTTPS
là loại kết nối bảo mật có được sự mã hoá của SSL.
HTTP
khi được truy cập sẽ được lắng nghe qua cổng 80
, còn với HTTPS khi được truy cập sẽ được lắng nghe qua cổng 443
của hệ thống.
Để có thể cài đặt được SSL, chúng ta sẽ sử dụng công cụ certbot
Để cài đặt certbot, trước hết ta cần cập nhật các gói cài đặt của VM
sudo apt-get update
Tiếp theo ta sẽ cài đặt certbot bằng câu lệnh sau
sudo apt-get install certbot python3-certbot-nginx
Để cài đặt SSL cho một tên miền cụ thể, ta sẽ sử dụng câu lệnh sau
certbot --nginx -d nglearns.test
Sau khi cài đặt, file config sẽ được thiết lập lại như sau
server {
server_name nglearns.test;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/nglearns.test/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/nglearns.test/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = nglearns.test) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name nglearns.test;
return 404; # managed by Certbot
}
Tại đây, ta có thể thấy được certbot đã thiết lập giúp ta việc lằng nghe và thiết lập ssl theo đường truyền.
SSL sẽ hết hạn sau 30 ngày, nhưng certbot sẽ giúp chúng ta làm mới lại khi tới hạn.