Cài SSL cho Zimbra Mail một cách tự động bằng Bash script
Tên tệp:
zimbra_letsencrypt.sh
Cách sử dụng:
- Cấp quyền thực thi:
chmod +x zimbra_letsencrypt.sh
- Chỉnh sửa các biến cấu hình ở đầu tệp (như
ZIMBRA_FQDN
) phù hợp với môi trường của bạn.- Chạy lệnh với quyền root hoặc qua sudo:
sudo ./zimbra_letsencrypt.sh
Giải thích cách thức hoạt động
- Cài đặt Certbot
- Xác định phiên bản hệ điều hành từ file
/etc/os-release
(chia thành hai nhóm chính: Debian/Ubuntu và RHEL/CentOS). - Cài đặt Certbot tương ứng (qua
snap
trên Ubuntu/Debian hoặcyum
trên RHEL-based). - Nếu gặp hệ điều hành không hỗ trợ, script sẽ yêu cầu bạn cài Certbot thủ công.
- Xác định phiên bản hệ điều hành từ file
- Dừng Proxy & Mailboxd trong Zimbra
- Dịch vụ Zimbra cần dừng lắng nghe trên cổng 80/443 để Certbot có thể khởi tạo ở chế độ standalone.
- Lấy chứng chỉ Let’s Encrypt
- Sử dụng lệnh
certbot certonly --standalone
với tùy chọn ép buộc gia hạn (--force-renewal
). - Sửa các biến ở đầu file như
EMAIL
,ZIMBRA_FQDN
,EXTRA_DOMAINS
để phù hợp. - Nếu không dùng email, bạn có thể thay thế bằng
--register-unsafely-without-email
.
- Sử dụng lệnh
- Triển khai chứng chỉ vào Zimbra
- Sao chép chứng chỉ lấy được từ
/etc/letsencrypt/live/$ZIMBRA_FQDN/
. - Tạo
zimbra_chain.pem
để kết hợp cả chain và root CA. - Dùng
zmcertmgr verifycrt
để xác thực chứng chỉ khớp với khoá riêng. - Sao lưu thư mục SSL hiện tại của Zimbra kèm timestamp.
- Sao chép private key thành
commercial.key
của Zimbra. - Dùng
zmcertmgr deploycrt comm
để cài đặt và cấu hình chứng chỉ mới trong Zimbra.
- Sao chép chứng chỉ lấy được từ
- Khởi động lại Zimbra
- Khởi động lại toàn bộ dịch vụ của Zimbra để áp dụng chứng chỉ mới.
Mẹo: Để tự động hoá gia hạn, bạn có thể lên lịch chạy kịch bản này (hoặc một phần) trong
crontab
hoặc thông quasystemd
timer. Bạn cũng cần đảm bảo cổng 80/443 không bị chiếm trong lúc Certbot chạy hoặc có thể cân nhắc sử dụng chế độwebroot
(nếu bạn có HTTP server đang chạy).
Cuối cùng, hãy luôn kiểm tra lại các cấu hình DNS, đặc biệt là bản ghi CAA, cũng như xác thực tên miền chính xác trỏ về máy chủ của bạn trước khi thực hiện yêu cầu chứng chỉ.
Chúc bạn triển khai thành công!