Let’s Encrypt là gì ?
Let’s Encrypt là cơ quan cấp chứng chỉ mở, tự động và miễn phí được phát triển bởi Nhóm nghiên cứu bảo mật Internet (ISRG), cung cấp chứng chỉ SSL miễn phí.
Chứng chỉ do Let’s Encrypt cấp được tất cả các trình duyệt chính tin cậy và có giá trị trong 90 ngày kể từ ngày cấp.
Hướng dẫn
Cài đặt Nginx(có thể bỏ qua nếu hệ thống của bạn đã caid Nginx)
Chạy lệnh sau để cài đặt Nginx:
sudo apt install nginx
Cài đặt Certbot
Chúng tôi sẽ sử dụng certbot để lấy và gia hạn chứng chỉ.
Chạy lệnh sau để cài đặt certbot :
sudo apt update sudo apt install certbot
Gõ”y” để tiếp tục
Tạo nhóm Dh (Diffie-Hellman)
Tạo một tập hợp các tham số DH 2048 bit mới bằng cách gõ lệnh sau:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Lấy chứng chỉ SSL Let’s Encrypt
Để có được chứng chỉ SSL cho miền, chúng tôi sẽ sử dụng plugin Webroot hoạt động bằng cách tạo tệp tạm thời để xác thực miền được yêu cầu trong thư mục ${webroot-path}/.well-known/acme-challenge.
Các lệnh sau sẽ tạo thư mục và làm cho nó có thể ghi được cho máy chủ Nginx:
sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp www-data /var/lib/letsencrypt sudo chmod g+s /var/lib/letsencrypt
Để tránh trùng lặp mã, chúng tôi sẽ tạo hai đoạn code và đưa chúng vào tất cả các tệp khối máy chủ Nginx.
Mở têp letsencrypt.conf :
sudo nano /etc/nginx/snippets/letsencrypt.conf
Dán đoạn code này vào:
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
Tiếp theo mở tệp ssl.conf:
sudo nano /etc/nginx/snippets/ssl.conf
Và dán đoạn code này vào
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 30s; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;
Sau khi các đoạn mã được tạo, hãy mở tệp khối máy chủ miền và bao gồm letsencrypt.conf đoạn mã như được hiển thị bên dưới:
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
Để kích hoạt khối máy chủ mới, hãy tạo một liên kết tượng trưng từ tệp đến thư mục sites-enabled:
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Khởi động lại dịch vụ Nginx để các thay đổi có hiệu lực:
sudo systemctl restart nginx
Bây giờ bạn có thể chạy Certbot với plugin webroot và lấy các tệp chứng chỉ SSL bằng cách phát hành:
sudo certbot certonly --agree-tos --email admin@example.com --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Tải lại dịch vụ Nginx để các thay đổi có hiệu lực:
sudo systemctl reload nginx
Để xác minh rằng chứng chỉ SSL được cài đặt thành công, hãy mở trang web của bạn bằng cách sử dụng https://
và bạn sẽ thấy biểu tượng ổ khóa màu xanh lục.
Tự động gia hạn chứng chỉ SSL Let’s Encrypt
Khi chứng chỉ được gia hạn, dịch vụ nginx cần được tải lại. Mở /etc/letsencrypt/cli.ini và thêm dòng sau:
sudo nano /etc/letsencrypt/cli.ini
Để kiểm tra quá trình gia hạn, hãy chạy lệnh certbot –dry-run :
sudo certbot renew --dry-run
Nếu không có lỗi, nghĩa là quá trình gia hạn đã thành công
Phần kêt:
Chúng tôi đã chỉ cho bạn cách sử dụng certbot để tải xuống chứng chỉ SSL của Let’s Encrypt cho miền của bạn.