1. Kiểm tra các chứng chỉ hiện tại
Command certbot certificates
Bắt đầu với điều cơ bản: làm thế nào để biết các chứng chỉ nào đã được cài đặt trên server của bạn? Let's Encrypt cung cấp một công cụ tiện lợi — certbot. Với command certbot certificates, bạn có thể nhận thông tin chi tiết về các chứng chỉ hiện tại.
sudo certbot certificates
Kết quả bạn sẽ thấy cái gì đó giống như thế này:
Found the following certs:
Certificate Name: example.com
Domains: example.com www.example.com
Expiry Date: 2023-12-31 10:00:00+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem
Ở đây có những thông tin quan trọng:
- Tên chứng chỉ.
- Các domain được chứng chỉ bảo vệ.
- Ngày hết hạn (để bạn có thể cập nhật kịp thời).
- Đường dẫn đến file của chứng chỉ và private key.
Mẹo hữu ích:
Nếu bạn có thói quen bỏ qua các thông báo về ngày hết hạn, thì command này sẽ trở thành người bạn tốt nhất của bạn. Vì chẳng ai muốn là lập trình viên bị người dùng giận dữ báo cho việc chứng chỉ đã hết hạn đâu.
2. Tự động cập nhật chứng chỉ
Bên trong Let's Encrypt
Chứng chỉ của Let's Encrypt có hiệu lực trong 90 ngày để giảm thiểu rủi ro bảo mật. Nhưng việc cập nhật thủ công mỗi 3 tháng thì quá phiền phức. May mắn thay, một lệnh tích hợp được dùng để tự động hóa:
sudo certbot renew
Quá trình này sẽ kiểm tra tất cả các chứng chỉ và tự động cập nhật những cái gần hết hạn.
Cấu hình tự động cập nhật qua Cron
Cron là một công cụ tích hợp để lập lịch nhiệm vụ trong Linux. Nó chạy các lệnh theo thời gian biểu, và đây chính là thứ chúng ta cần để tự động hóa việc cập nhật chứng chỉ. Đây là cách cấu hình Cron để cập nhật:
Mở trình chỉnh sửa
Croncho người dùng hiện tại:sudo crontab -eThêm dòng sau vào cuối tệp:
0 0 * * * certbot renew --quietDòng lệnh này chạy
certbot renewmỗi ngày vào nửa đêm. Tham số--quietsẽ làm im lặng các đầu ra không cần thiết, do đó việc cập nhật sẽ diễn ra mà không làm phiền ai.Lưu thay đổi và thoát khỏi trình chỉnh sửa.
Bây giờ server của bạn sẽ tự động cập nhật chứng chỉ, và bạn không còn phải lo lắng về việc hết hạn chứng chỉ nữa (hầu như vậy).
3. Cập nhật chứng chỉ thủ công
Đôi lúc việc tự động hóa không giải quyết được hết các vấn đề, và bạn cần cập nhật chứng chỉ thủ công. Ví dụ, nếu bạn vừa thêm một tên miền mới vào cấu hình của trang web, bạn cần yêu cầu một chứng chỉ mới một cách thủ công. Một lần nữa, certbot sẽ hỗ trợ bạn:
Ví dụ lệnh:
sudo certbot renew
Cập nhật chứng chỉ cho một tên miền cụ thể
Nếu bạn cần cập nhật chứng chỉ liên quan đến một tên miền cụ thể, bạn có thể sử dụng cú pháp lệnh sau:
sudo certbot certonly --nginx -d example.com -d www.example.com
Ở đây:
--nginxchỉ ra rằng cấu hình sẽ tự động được áp dụng cho server Nginx. Đối với Apache, sử dụng--apache.- Các tham số
-dliệt kê các tên miền cần phát hành chứng chỉ.
Sau khi thực thi lệnh, Certbot sẽ kiểm tra cấu hình server, yêu cầu chứng chỉ mới và cấu hình cho nó.
4. Thông báo và giám sát
Thông báo qua email
Khi cài đặt Certbot, nó đã yêu cầu địa chỉ email của bạn. Nếu bạn đã cung cấp, bạn sẽ nhận được thông báo 20 ngày trước khi chứng chỉ hết hạn. Nếu bạn chưa cung cấp địa chỉ email hoặc muốn thay đổi nó, bạn có thể làm như sau:
sudo certbot register --update-registration --email newaddress@example.com
Bây giờ sẽ không có tình huống nào làm bạn bất ngờ. À, gần như thế.
Kiểm tra từ bên ngoài
Có những dịch vụ bên thứ ba có thể giúp bạn theo dõi thời hạn của chứng chỉ. Ví dụ, SSL Labs. Chỉ cần nhập địa chỉ website, và dịch vụ sẽ kiểm tra chứng chỉ của nó, bao gồm thời hạn, chuỗi tin cậy và mức độ bảo mật.
5. Xóa chứng chỉ không cần thiết
Đôi khi các chứng chỉ cũ trở nên không còn hữu ích, ví dụ, nếu bạn không còn duy trì một domain nào đó nữa. Để tránh làm rác hệ thống, tốt hơn là nên xóa chúng.
Câu lệnh để xóa:
sudo certbot delete
Certbot sẽ hiển thị danh sách các chứng chỉ có sẵn và đề nghị bạn chọn cái nào để xóa.
Mẹo hữu ích:
Hãy cẩn thận khi xóa chứng chỉ để tránh vô tình làm ngừng một website đang hoạt động. Luôn kiểm tra chắc chắn rằng chứng chỉ không còn được sử dụng ở bất kỳ đâu.
6. Ví dụ và sửa lỗi
Kiểm tra sau khi cập nhật
Sau bất kỳ thay đổi hoặc cập nhật chứng chỉ nào, luôn kiểm tra để đảm bảo rằng trang web hoạt động bình thường. Cách đơn giản nhất là sử dụng curl:
curl -I https://example.com
Kết quả mong đợi — mã HTTP/1.1 200 OK.
Nếu có vấn đề, điều đầu tiên cần kiểm tra là logs:
Với Nginx:
sudo tail -f /var/log/nginx/error.logVới Apache:
sudo tail -f /var/log/apache2/error.log
Lỗi phổ biến: "Too Many Requests"
Nếu bạn yêu cầu chứng chỉ mới quá thường xuyên, Let's Encrypt có thể chặn quyền truy cập của bạn với lỗi "Too Many Requests". Trong trường hợp như vậy, nên sử dụng server thử nghiệm của Let's Encrypt:
sudo certbot certonly --test-cert --nginx -d example.com
Lệnh này sẽ cấp một chứng chỉ thử nghiệm, không hợp lệ để sử dụng thực tế, nhưng sẽ giúp kiểm tra cấu hình.
7. Bước cuối cùng: tự động khởi động lại web server
Let's Encrypt cập nhật các file chứng chỉ, nhưng web server như Nginx hoặc Apache sẽ không nhận ra sự thay đổi cho đến khi bạn khởi động lại chúng. Điều này cũng có thể tự động hóa được. Cập nhật bản ghi Cron:
0 0 * * * certbot renew --quiet && systemctl reload nginx
Hoặc dành cho Apache:
0 0 * * * certbot renew --quiet && systemctl reload apache2
Bây giờ sau khi cập nhật, bất kỳ chứng chỉ nào cũng sẽ được áp dụng ngay lập tức cho server.
Bài giảng này nhằm mục đích giúp bạn có thể ngủ ngon vào ban đêm, biết rằng chứng chỉ của bạn được cập nhật tự động, các trang web được bảo vệ, và bạn sẽ không nhận được cuộc gọi từ sếp vào lúc 3 giờ sáng với câu nói "Người dùng đang phàn nàn rằng trang web không hoạt động". Quản lý chứng chỉ là một kỹ năng quan trọng, rất hữu ích trong công việc thực tế, đặc biệt nếu bạn dự định triển khai các ứng dụng web lớn hoặc làm việc trong lĩnh vực kỹ thuật DevOps.
GO TO FULL VERSION