Tài liệu tham khảo bạn có thể xem cụ thể tại Github.
1. Cấu hình firewall
Bạn cần mở port http trên firewall. Letsencrypt cần port http.
Trên centos:
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload
Trên Ubuntu:
ufw allow 80/tcp
ufw allow 443/tcp
2. Cài đặt epel repo và git
Trong trường hợp bạn đang dùng centos 7, do đã end of life nên bạn cần điều chỉnh lại centos 7 repository trước khi có thể cài đặt các phần mềm:
Trên centos 7
curl -s -L https://www.alphagnu.com/upload/centos7-repo-fix.sh | bash
yum install epel-release git
Trên ubuntu
apt-get install git
3. Cài đặt certbot
Trên Centos, cài đặt từ epel repository.
yum install certbot --enablerepo=epel
Trên Ubuntu, cài đặt sử dụng snap.
sudo apt install snapd
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
4. Clone mã nguồn của letsencrypt-zimbra về
git clone https://github.com/VojtechMyslivec/letsencrypt-zimbra.git /opt/letsencrypt-zimbra
5. Tạo file cấu hình và edit
cp /opt/letsencrypt-zimbra/letsencrypt-zimbra.cfg{.example,}
Cấu hình email và tên common name (tên của mail server) trong /opt/letsencrypt-zimbra/letsencrypt-zimbra.cfg
email=zadmin@zimilab.com
common_names=( "mail.zimilab.com” “mail.zimbravn.com” )
#Thay đổi đường dẫn của certbot cho đúng với môi trường của bạn. Mặc định trong file cấu hình này là /usr/local/bin/certbot.
Bạn thay thế các thông số trên cho phù hợp với môi trường Zimbra cụ thể của bạn. Xem hướng dẫn trong file để biết thêm.
Letsencrypt không cấp wildcard cert nên bạn cần nhập từng common_names cụ thể.
6. Gán quyền sudo cho user zimbra để chạy lệnh
Copy file cấu hình sudo của zimbra
cd /opt/letsencrypt-zimbra
cp configs/sudoers.conf /etc/sudoers.d/zimbra_certbot
Edit file /etc/sudoers.d/zimbra_certbot, thay đổi đường dẫn certbot tương ứng với môi trường của bạn, mặc định trong script này là /usr/local/bin/certbot
Kiểm tra thử (sẽ không cần nhập password)
sudo -Hu zimbra sudo /usr/local/bin/certbot -h
7. Chạy script để lấy và cài cert.
Lần chạy đầu tiên, dùng option -t để test.
sudo -Hiu zimbra /opt/letsencrypt-zimbra/letsencrypt-zimbra.sh -v -t
Letsencrypt có rate-limit nên ta dùng -t để test xem có lấy và cài cert ok không. Nếu ổn thì mới tiến hành cài.
Lần chạy thứ 2, bỏ option -t và thêm option –f (để cài đè lên cert đã tạo trong lần chạy trước).
sudo -Hiu zimbra /opt/letsencrypt-zimbra/letsencrypt-zimbra.sh -v -f
8. Cấu hình cron job
#cp configs/cron.conf /etc/cron.d/letsencrypt-zimbra
Xem cấu hình file này để tùy chỉnh theo yêu cầu hệ thống nếu cần.
9. Bonus. Cấu hình DNS record.
Bạn có thể cấu hình CAA DNS record như sau:
host: @
loại: CAA
Địa chỉ: letsencrypt.org
TTL: 3600
Flag: 0
Tag: issue