Khái niêm
– Nhận SSL Certificates từ Let’s Encrypt nhà cung cấp SSL Certificates miễn phí.
– Ngày hết hạn của cert là 90 ngày.
– Tuy nhiên, Systemd Timer kiểm tra và cập nhập certificates được bao gồm trong is Certbot package và bạn không cần cập nhập thủ công.
Install Certbot Client
– Certbot Client là tool lấy certificates từ Let’s Encrypt.
root@www:~# apt -y install certbot
Nhận certificates
– Cần có Web Server như Apache httpd hoặc Nginx phải đang chạy trên server của bạn.
– Nếu không có Web server đang chạy, bỏ qua phần này và tham khảo phần dưới: Nhận certificates sử dụng tính năng web server của Certbot
– Hơn nữa, Nó cần có khả năng truy cập từ Internet đến server đang hoạt động của bạn trên port 80 vì cần verification từ Let’s Encrypt.
# đối với option [--webroot], sử dụng một directory dưới webroot trên server của bạn như một nơi hoạt động tạm thời. # -w [thư mục chính] -d [FQDN bạn muốn nhận certs] # FQDN (Fully Qualified Domain Name-tên miền đầy đủ) : Hostname.Domainname # nếu bạn muốn nhận được cert cho nhiều hơn2 FQDN, hãy chỉ định tất cả như bên dưới # ex : nếu nhận [srv.dinhducthanh.com] and [www.srv.dinhducthanh.com] # ⇒ [-d srv.dinhducthanh.com -d www.srv.dinhducthanh.com] root@www:~# certbot certonly --webroot -w /var/www/html -d srv.dinhducthanh.com Saving debug log to /var/log/letsencrypt/letsencrypt.log Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): thanhdd.noc@gmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in order to register with the ACME server. Do you agree? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # đồng ý với các điều khoản sử dụng (Y)es/(N)o: Y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing, once your first certificate is successfully issued, to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N Account registered. Requesting a certificate for srv.dinhducthanh.com Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/srv.dinhducthanh.com/fullchain.pem Key is saved at: /etc/letsencrypt/live/srv.dinhducthanh.com/privkey.pem This certificate expires on 2024-08-18. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If you like Certbot, please consider supporting our work by: * Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate * Donating to EFF: https://eff.org/donate-le - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
– thành công nếu [Successfully received certificate] được hiển thị
# certs được tạo trong thư mục [/etc/letsencrypt/live/(FQDN)/] directory
root@www:~# ls /etc/letsencrypt/live/ README srv.dinhducthanh.com root@www:~# ls /etc/letsencrypt/live/srv.dinhducthanh.com cert.pem chain.pem fullchain.pem privkey.pem README # cert.pem ⇒ SSL Server cert(bao gồm public-key) # chain.pem ⇒ certificate trung cấp # fullchain.pem ⇒ file kết hợp cert.pem và chain.pem # privkey.pem ⇒ file private-key
Nhận certificates sử dụng tính năng web server của Certbot
– Nếu không có Web Server đang chạy trên server của bạn, bạn có thể nhận được certs bằng cách sử dụng tính năng web server của Certbot. Với mọi cách, nó cần có khả năng truy cập từ Internet đến server đang hoạt động của bạn trên port 80 vì cần xác nhận từ Let’s Encrypt.
# với option [--standalone], sử dụng tính năng Web Server của Certbot's # -d [FQDN bạn muốn nhận certs] # FQDN (Fully Qualified Domain Name-tên miền đầy đủ) : Hostname.Domainname # nếu bạn muốn nhận được cert cho nhiều hơn2 FQDN, hãy chỉ định tất cả như bên dưới # ex : nếu nhận [srv.dinhducthanh.com] and [srv.dinhducthanh.com] ⇒ chỉ định [-d srv.dinhducthanh.com -d www.dinhducthanh.local] root@www:~# certbot certonly --standalone -d demo.dinhducthanh.com Saving debug log to /var/log/letsencrypt/letsencrypt.log Requesting a certificate for demo.dinhducthanh.com Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/demo.dinhducthanh.com/fullchain.pem Key is saved at: /etc/letsencrypt/live/demo.dinhducthanh.com/privkey.pem This certificate expires on 2024-08-18. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If you like Certbot, please consider supporting our work by: * Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate * Donating to EFF: https://eff.org/donate-le - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Renew certificates
– Để cập nhật các certs hiện có theo cách thủ công, sử dụng lệnh phụ [renew].
– Để chạy lệnh phụ [renew], tất cả các certs có hạn dưới 30 ngày đều được cập nhật
– Nếu bạn muốn update các certs đã hết hạn hơn 30 ngày, hãy thêm tùy chọn [–force-renew]
– Tuy nhiên, [certbot] package có systemd timer, vì vậy nó không cần phải chạy thủ công.
# systemd timer script được bao gồm trong Certbot package root@www:~# systemctl status certbot.timer * certbot.timer - Run certbot twice daily Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset:> Active: active (waiting) since Tue 2022-04-26 01:16:03 UTC; 12min ago Trigger: Tue 2022-04-26 18:17:15 UTC; 16h left Triggers: certbot.service root@www:~# systemctl list-timers certbot.timer --no-pager NEXT LEFT LAST PASSED UNIT ACTIVATES Tue 2022-04-26 18:17:15 UTC 16h left n/a n/a certbot.timer certbot.service 1 timers listed. Pass --all to see loaded but inactive timers, too.
# [renew] được chạy 2 lần mỗi ngày như sau theo mặc định root@www:~# systemctl cat certbot.timer # /lib/systemd/system/certbot.timer [Unit] Description=Run certbot twice daily [Timer] OnCalendar=*-*-* 00,12:00:00 RandomizedDelaySec=43200 Persistent=true [Install] WantedBy=timers.target root@www:~# systemctl cat certbot.service # /lib/systemd/system/certbot.service [Unit] Description=Certbot Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html Documentation=https://certbot.eff.org/docs [Service] Type=oneshot ExecStart=/usr/bin/certbot -q renew PrivateTmp=true
# để cập nhật thủ công, hãy làm như sau root@www:~# certbot renew
Convert certificates
– Nếu bạn muốn chuyển đổi certificates sang định dạng PKCS12 (PFX) cho Windows, làm như sau.
root@www:~# openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out dlp_for_iis.pfx Enter Export Password: # set any export password Verifying - Enter Export Password:
Tham khảo thêm
Cài đặt DNS Server trên Ubuntu 22.04: Internal Network và External Network