Chuyển tới nội dung chính
Version: 4.1

Chứng chỉ SSL tuỳ chỉnh cho panel, webmail và dịch vụ thư

HiTechCloud tự động cấp chứng chỉ Let's Encrypt cho hostname của chính nó. Bài viết này dành cho trường hợp bạn muốn dùng chứng chỉ đã mua (hoặc được cấp ở nơi khác) cho một hoặc nhiều thành phần sau:

  • giao diện panel và quản trị (https://srv.example.com:2083 / :2087)
  • webmail (https://webmail.example.com)
  • chính dịch vụ thư - chứng chỉ mà Postfix và Dovecot trình ra trên các cổng 465/587/993/995, có thể là hostname và chứng chỉ khác với của panel (mail.example.com)

Chứng chỉ gắn với từng hostname, nên mỗi thành phần trong ba thành phần trên có thể dùng chứng chỉ riêng.


Dịch vụ chạy trên máy chủ (3.x trở lên)​

Panel và quản trị (HiTechCloud + HiTechAdmin)​

Từ giao diện: HiTechAdmin > Cài đặt > Chung > SSL cho tên miền bảng điều khiển hiển thị chứng chỉ đang được phục vụ cho hostname đặt ở phía trên, kèm Cấp / gia hạn Let's Encrypt và Cài đặt chứng chỉ tuỳ chỉnh (dán chứng chỉ kèm chuỗi chứng chỉ và khoá riêng; chúng được kiểm tra như một cặp và các panel khởi động lại để nhận chứng chỉ).

Từ terminal:

hitechcloudcli ssl upload srv.example.com --cert /root/srv.crt --key /root/srv.key [--chain /root/ca.crt]
systemctl restart hitechcloud hitechadmin

Chứng chỉ nằm trong /etc/hitechcloud/native/ssl/<hostname>/fullchain.pem và privkey.pem.

Webmail​

Webmail là một vhost front-end trên cùng cổng 80/443 mà các website dùng. Hãy đặt cho nó một hostname và một chứng chỉ:

hitechcloudcli webmail domain add webmail webmail.example.com
# own certificate instead of Let's Encrypt:
hitechcloudcli ssl upload webmail.example.com --cert /root/webmail.crt --key /root/webmail.key
hitechcloudcli webmail configure

ssl upload cài chứng chỉ và tải lại front-end; nếu sau này muốn quay lại, lệnh ssl issue webmail.example.com sẽ thay nó bằng chứng chỉ Let's Encrypt.

Dịch vụ thư (Postfix / Dovecot) - hostname và chứng chỉ riêng​

Mặc định, các dịch vụ thư trình ra chứng chỉ của hostname panel. Để đặt cho dịch vụ thư một tên riêng:

# 1. the name mail answers under (HELO, IMAP/SMTP TLS, autoconfig)
hitechcloudcli mail hostname mail.example.com

# 2. its certificate - your own ...
hitechcloudcli ssl upload mail.example.com --cert /root/mail.crt --key /root/mail.key
# ... or Let's Encrypt (the name must resolve to this server)
hitechcloudcli ssl issue mail.example.com --no-wildcard

# 3. point Postfix/Dovecot at it (also run automatically after every issue/renewal/upload)
hitechcloudcli mail tls

Kiểm tra kết quả:

hitechcloudcli mail identity # HELO name vs certificate vs reverse DNS
hitechcloudcli mail test # 25/465/587/993 answer with the new certificate
openssl s_client -connect mail.example.com:993 -servername mail.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates

Để quay lại hostname và chứng chỉ của panel: hitechcloudcli mail hostname --panel.

TIP

Đặt mail.example.com làm Mail server hostname mà khách hàng thấy trong Email > Client configuration và trong autoconfig/autodiscover; mail hostname cập nhật cả hai.

Website (người dùng cuối)​

Người dùng cuối tự thêm chứng chỉ của mình từ HiTechCloud > Tên miền > SSL, và quản trị viên có thể dán chứng chỉ/khoá cho bất kỳ tên miền nào tại HiTechAdmin > Tên miền > Quản lý SSL. Xem SSL tuỳ chỉnh cho tên miền.


Stack container (2.x)​

Trên stack container, Caddy đảm nhận TLS cho panel và webmail, còn container thư đọc đường dẫn chứng chỉ từ biến môi trường.

  • Chứng chỉ Let's Encrypt được lưu trong /etc/hitechcloud/caddy/ssl/acme-v02.api.letsencrypt.org-directory/
  • Chứng chỉ tuỳ chỉnh đặt trong /etc/hitechcloud/caddy/ssl/custom/<hostname>/<hostname>.crt và <hostname>.key

Panel và quản trị​

mkdir -p /etc/hitechcloud/caddy/ssl/custom/srv.example.com/
# upload srv.example.com.crt and srv.example.com.key there, then
hitechcloudcli domain set srv.example.com

hitechcloudcli domain set ưu tiên cặp chứng chỉ tuỳ chỉnh của hostname nếu có; nếu bạn đã sửa Caddyfile thủ công, hãy thêm vào khối của hostname:

tls /etc/hitechcloud/caddy/ssl/custom/srv.example.com/srv.example.com.crt /etc/hitechcloud/caddy/ssl/custom/srv.example.com/srv.example.com.key

rồi chạy docker restart caddy.

Webmail​

mkdir -p /etc/hitechcloud/caddy/ssl/custom/webmail.example.com/
# upload webmail.example.com.crt / .key, then
hitechcloudcli email-webmail domain webmail.example.com

Nếu khối # START WEBMAIL DOMAIN # trong Caddyfile không có dòng tls, hãy thêm một dòng như trên và khởi động lại Caddy.

Dịch vụ thư​

Container thư dùng SSL_TYPE=manual cùng SSL_CERT_PATH / SSL_KEY_PATH trong /etc/hitechcloud/mailserver/mailserver.env. hitechcloudcli domain set ghi các giá trị này cho hostname panel; với hostname thư riêng, hãy tự đặt:

SSL_TYPE=manual
SSL_CERT_PATH=/etc/hitechcloud/caddy/ssl/custom/mail.example.com/mail.example.com.crt
SSL_KEY_PATH=/etc/hitechcloud/caddy/ssl/custom/mail.example.com/mail.example.com.key

rồi chạy cd /root && docker --context default compose up -d hitechadmin_mailserver.