Nếu bạn đang chạy máy chủ thư của riêng mình, cách tốt nhất là kết nối an toàn với máy chủ đó bằng kết nối SSL/TLS. Bạn sẽ cần một chứng chỉ hợp lệ cho các kết nối an toàn này. Trong hướng dẫn này, chúng tôi sẽ thiết lập chứng chỉ Let's Encrypt cho máy chủ thư của mình, chứng chỉ này sẽ tự động gia hạn.
Cảnh báo: Hướng dẫn này dựa trên hướng dẫn này: https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/ nhưng đã được sửa đổi để bạn có một chứng chỉ riêng cho máy chủ thư và bảng điều khiển của mình. Nếu bạn đã làm theo hướng dẫn đó trước đây, hướng dẫn này có thể làm hỏng thiết lập của bạn.
Hướng dẫn này sử dụng chứng chỉ do acme.sh cấp. Nếu bạn đang sử dụng certbot, hãy làm theo hướng dẫn này: https://www.howtoforge.com/communit...d-lets-encrypt-ssl-certificate-certbot.86372/
Lưu ý đối với ISPConfig 3.2: ISPConfig 3.2 có khả năng tự động tạo chứng chỉ SSL Let's Encrypt hợp lệ cho tên máy chủ trong quá trình cài đặt, chứng chỉ này cũng được sử dụng cho máy chủ thư. Không cần phải tạo thủ công chứng chỉ SSL Let's Encrypt như được mô tả ở đây trên các hệ thống ISPConfig 3.2 trừ khi bạn cần các tên miền khác nhau trong chứng chỉ SSL bên cạnh tên máy chủ của máy chủ.
Thay thế tất cả các tên máy chủ được gạch chân màu đỏ trong hướng dẫn này bằng tên máy chủ của riêng bạn.
Tạo các bản ghi DNS cho tên máy chủ của bạn để chúng trỏ đến máy chủ của bạn. Đây phải là các bản ghi A (và cuối cùng là AAAA). Sau đó, trong giao diện ISPConfig, hãy chuyển đến tab Sites.
Sau đó, bạn có thể thêm các tên máy chủ khác làm tên miền bí danh bằng cách vào danh sách aliasdomain và nhấp vào "Add new aliasdomain". Chọn smtp.example.com làm tên miền và mail.example.com làm trang web gốc. Tắt Auto-Subdomain và lưu bản ghi mới. Lặp lại thao tác này cho các tên máy chủ khác của bạn.
Xác minh rằng chứng chỉ đã được thiết lập. Bạn có thể thực hiện việc này bằng một công cụ như https://www.sslshopper.com/ssl-checker.html
Nó sẽ trông giống như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22548%22%3E%3C/svg%3E
Nếu tên máy chủ được liệt kê và không có lỗi nào khác, bạn có thể tiếp tục. Nếu không, hãy kiểm tra lỗi và giải quyết chúng trước khi tiếp tục.
(thay thế mail.example.com bằng tên máy chủ bạn đã sử dụng cho trang web)
Bây giờ chứng chỉ sẽ được sử dụng cho máy chủ Postfix và Dovecot của bạn. Nhưng chúng ta vẫn chưa xong! Chứng chỉ Let's Encrypt được gia hạn sau mỗi 60 ngày, vì vậy chúng ta nên tự động hóa quy trình thay thế chứng chỉ trong tương lai để bạn không thể quên nó.
Bạn có thể thực hiện kiểm tra bằng các lệnh ls sau:
Kết quả sẽ trông như thế này nếu đã có chứng chỉ:
Nếu hai lệnh ls không trả về các tệp ispserver.crt và ispserver.key, hãy tạo chúng dưới dạng liên kết tượng trưng đến chứng chỉ Let's Encrypt như sau:
Dán nội dung này vào tệp đó:
Tạo tập lệnh thực thi:
Để tự động kích hoạt tập lệnh này khi gia hạn, chúng ta sẽ sử dụng systemd.
Tạo và mở dịch vụ systemd mới:
Dán nội dung này vào đó tệp:
Lưu và đóng tệp này. Sau đó, tạo và mở tệp đường dẫn systemd mới:
Dán nội dung này vào tệp đó và thay thế mail.example.com bằng tên máy chủ mà bạn đã sử dụng:
Lưu và đóng tệp này. Sau đó khởi động dịch vụ và bật dịch vụ để chạy khi khởi động:
Và bật dịch vụ để chạy khi khởi động:
Và chúng ta đã hoàn tất!
Nếu bạn vẫn gặp sự cố, hãy mở một chủ đề trên diễn đàn để những người khác có thể giúp bạn.
Cảnh báo: Hướng dẫn này dựa trên hướng dẫn này: https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/ nhưng đã được sửa đổi để bạn có một chứng chỉ riêng cho máy chủ thư và bảng điều khiển của mình. Nếu bạn đã làm theo hướng dẫn đó trước đây, hướng dẫn này có thể làm hỏng thiết lập của bạn.
Hướng dẫn này sử dụng chứng chỉ do acme.sh cấp. Nếu bạn đang sử dụng certbot, hãy làm theo hướng dẫn này: https://www.howtoforge.com/communit...d-lets-encrypt-ssl-certificate-certbot.86372/
Lưu ý đối với ISPConfig 3.2: ISPConfig 3.2 có khả năng tự động tạo chứng chỉ SSL Let's Encrypt hợp lệ cho tên máy chủ trong quá trình cài đặt, chứng chỉ này cũng được sử dụng cho máy chủ thư. Không cần phải tạo thủ công chứng chỉ SSL Let's Encrypt như được mô tả ở đây trên các hệ thống ISPConfig 3.2 trừ khi bạn cần các tên miền khác nhau trong chứng chỉ SSL bên cạnh tên máy chủ của máy chủ.
Điều kiện tiên quyết
- Máy chủ của bạn phải được cài đặt theo hướng dẫn Perfect Server cho hệ điều hành của bạn.
- Đảm bảo rằng bạn đã đăng nhập với tư cách là người dùng root.
Bắt đầu
Tôi sẽ sử dụng các tên máy chủ sau cho máy chủ thư của mình: mail.example.com, smtp.example.com, imap.example.com.Thay thế tất cả các tên máy chủ được gạch chân màu đỏ trong hướng dẫn này bằng tên máy chủ của riêng bạn.
Tạo các bản ghi DNS cho tên máy chủ của bạn để chúng trỏ đến máy chủ của bạn. Đây phải là các bản ghi A (và cuối cùng là AAAA). Sau đó, trong giao diện ISPConfig, hãy chuyển đến tab Sites.
Phát hành chứng chỉ
Trong Sites, hãy nhấp vào "Add new website". Đặt mail.example.com làm tên miền. Tắt Auto-Subdomain và tích vào hộp kiểm Let's Encrypt.Sau đó, bạn có thể thêm các tên máy chủ khác làm tên miền bí danh bằng cách vào danh sách aliasdomain và nhấp vào "Add new aliasdomain". Chọn smtp.example.com làm tên miền và mail.example.com làm trang web gốc. Tắt Auto-Subdomain và lưu bản ghi mới. Lặp lại thao tác này cho các tên máy chủ khác của bạn.
Xác minh rằng chứng chỉ đã được thiết lập. Bạn có thể thực hiện việc này bằng một công cụ như https://www.sslshopper.com/ssl-checker.html
Nó sẽ trông giống như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22548%22%3E%3C/svg%3E
Nếu tên máy chủ được liệt kê và không có lỗi nào khác, bạn có thể tiếp tục. Nếu không, hãy kiểm tra lỗi và giải quyết chúng trước khi tiếp tục.
Thay thế chứng chỉ bằng chứng chỉ Let's Encrypt
Bây giờ chúng ta có thể thay thế chứng chỉ hiện tại bằng chứng chỉ đáng tin cậy của bạn. Đăng nhập vào máy chủ của bạn và chạy các lệnh sau:(thay thế mail.example.com bằng tên máy chủ bạn đã sử dụng cho trang web)
Mã:
cd /etc/postfix/
mv smtpd.cert smtpd.cert-$(date +"%y%m%d%H%M%S").bak
mv smtpd.key smtpd.key-$(date +"%y%m%d%H%M%S").bak
ln -s /root/.acme.sh/mail.example.com/fullchain.cer smtpd.cert
ln -s /root/.acme.sh/mail.example.com/mail.example.com.key smtpd.key
systemctl restart postfix
systemctl restart dovecot
Các nút đa máy chủ không có Giao diện người dùng ISPConfig
Nếu đây là một nút không có Giao diện người dùng trong thiết lập đa máy chủ ISPConfig, bây giờ bạn phải kiểm tra xem ISPConfig có chứng chỉ SSL hay không. Không thực hiện bước này trên thiết lập máy chủ đơn lẻ hoặc máy chủ chạy Giao diện người dùng ISPConfig.Bạn có thể thực hiện kiểm tra bằng các lệnh ls sau:
Mã:
cd /usr/local/ispconfig/interface/ssl/
ls ispserver.crt
ls ispserver.key
Mã:
root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.crt
ispserver.crt
root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.key
ispserver.key
Mã:
ln -s /root/.acme.sh/mail.example.com/fullchain.cer ispserver.crt
ln -s /root/.acme.sh/mail.example.com/mail.example.com.key ispserver.key
Thiết lập tập lệnh gia hạn tự động
Mở một tập lệnh mới tệp:
Mã:
nano /usr/local/bin/le_mailserver_restart.sh
Mã:
#!/bin/sh
### BEGIN INIT INFO
# Provides: LE MAILSERVER CERT AUTO UPDATER
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: LE MAILSERVER CERT AUTO UPDATER
# Description: Restart mail server automatically when a new Let's Encrypt certificate is issued.
### END INIT INFO
systemctl restart postfix
systemctl restart dovecot
Mã:
chmod +x /usr/local/bin/le_mailserver_restart.sh
Tạo và mở dịch vụ systemd mới:
Mã:
nano /etc/systemd/system/le-mailserver-restart.service
Mã:
[Unit]
Description="Run script to restart Postfix and Dovecot after the certificate has been renewed"
[Service]
ExecStart=/usr/local/bin/le_mailserver_restart.sh
Mã:
nano /etc/systemd/system/le-mailserver-restart.path
Mã:
[Unit]
Description="Monitor the mailserver certificate files to trigger a e-mail services restart after the certificates has been renewed"
[Path]
PathModified=/root/.acme.sh/mail.example.com/
Unit=le-mailserver-restart.service
[Install]
WantedBy=multi-user.target
Mã:
systemctl start le-mailserver-restart.path
Mã:
systemctl enable le-mailserver-restart.path
Không hoạt động?
Tôi đã từng gặp sự cố này vì Let's Encrypt sử dụng một trong các tên miền bí danh làm tên miền chính. Bạn có thể tìm tên miền chính trong công cụ SSL đã đề cập trước đó dưới dạng "Tên chung" hoặc bằng cách liệt kê nội dung của /root/acme.sh/ để xem tên miền (bí danh) nào có thư mục ở đó.Nếu bạn vẫn gặp sự cố, hãy mở một chủ đề trên diễn đàn để những người khác có thể giúp bạn.