Cài đặt SSL cho Nginx trên CentOS 7
Bước 1: xóa các gói cài đặt Certbot trước đó
# yum remove -y certbot
Bước 2: cài đặt Certbot
Kích hoạt truy cập đến kho EPEL trên server của
# yum install -y epel-release
Gõ lệnh sau để tải gói certbot-nginx:
# yum install -y certbot-nginx
Bước 3: mở port tường lửa
Nếu bạn đang chạy tường lửa, hãy chắc chắn rằng hai port 80 và 443 được mở
# firewall-cmd --zone=public --add-port={80,443}/tcp --permanent
# firewall-cmd --reload
Gõ lệnh sau để kiểm tra
# firewall-cmd --list-port
Bước 4: lấy chứng chỉ SSL
Cài đặt chứng chỉ tự động với lệnh sau:
# certbot --nginx -d example.com -d www.example.com
Nó sẽ chạy certbot với plugin –nginx để cấu hình lại Nginx, sử dụng -d để xác định tên hợp lệ của chứng chỉ
Bước 5: tự động gia hạn
Mặc định giấy chứng nhận của LetsEncrypt chỉ có hạn là 90 ngày nên KDATA khuyến khích các bạn tự động hóa quá trình gia hạn chứng chỉ của mình.
*Lưu ý: Nếu bạn gõ lệnh với LetsEncrypt sai, lỗi quá nhiều, nó sẽ khóa không cho bạn thao tác trong khoảng 1 tiếng.
Hãy thử trước khi thực hiện lệnh (tạo, gia hạn…) thật, có thể thêm tùy chọn –dry-run ở cuối câu lệnh. Chẳng hạn
# certbot renew --dry-run
Nếu chắc chắn, gõ lệnh
# certbot renew
Lệnh gia hạn tự động áp dụng cho Certbot nằm ở một trong những file và đường dẫn sau:
/etc/crontab
/etc/cron.*/*
systemctl list-timers
Thiết lập cron job để tự động gia hạn
# crontab -e
0 0 15 * * /usr/bin/certbot renew --post-hook "systemctl restart nginx" >> /var/log/certbot-renew.log
Dòng này sẽ chạy lệnh gia hạn vào 24 giờ ngày 15 mỗi tháng, sau đó lưu log vào file /var/log/certbot-renew.log để tiện theo dõi
Bước 6: kiểm tra Certbot hoạt động
Sau khi hoàn tất các bạn mở trình duyệt truy cập vào tên miền
Chúc các bạn thành công!