Tên miền webmail
Cài đặt > Tên miền webmail cấp cho mỗi tính năng của webmail một hostname riêng - mail.example.com, meet.example.com, chat.example.com, files.example.com, docs.example.com, book.example.com, ai.example.com - thay vì địa chỉ và cổng của panel.
Nếu không có nó, mọi thứ webmail cung cấp đều trả lời trên một URL: https://control.example.com:2096/. Điều đó ổn với hộp thư, vì người đọc đã đăng nhập ở đó. Nhưng không ổn với các liên kết mà webmail đề nghị người khác mở - lời mời họp, trang đặt lịch, liên kết chia sẻ được chuyển ra ngoài công ty. Một cổng trong URL là thứ người nhận phải được giải thích, một số proxy doanh nghiệp từ chối nó, và một hostname có chữ "control panel" trông rất đáng ngờ.
Khi đã cấu hình tên miền, cùng lời mời đó mang https://meet.example.com/meet/join/ab12cd và không cần giải thích gì.
Điều gì thực sự thay đổi
| Thứ lắng nghe | Không có gì mới. Mỗi hostname là một vhost bình thường trên các cổng 80 và 443 sẵn có của front-end, chuyển tiếp tới webmail tại 127.0.0.1:8892. |
| Tường lửa | Không thay đổi. Không cổng riêng nào cho từng tính năng bị mở; 80 và 443 đã mở sẵn cho các website đang host. |
| HTTP | Được chuyển hướng sang HTTPS (301), trừ đường dẫn thử thách ACME, vốn phải luôn truy cập được để gia hạn. |
| TLS | Chứng chỉ riêng của tên đó, được cấp qua ACME client của stack. Cho tới khi cấp được, chứng chỉ của panel sẽ được dùng để trang vẫn được mã hoá - trình duyệt sẽ cảnh báo cho tới lúc đó. |
| Ứng dụng | Một bản triển khai: một backend, một cơ sở dữ liệu, một bản build. Hostname chỉ quyết định trang đích và các liên kết, không gì khác. |
| Phiên | Cookie phiên thuộc về một hostname, nên mỗi tên phải đăng nhập một lần. |
Trước khi thêm
- Trỏ bản ghi DNS A (hoặc AAAA) của tên miền phụ về máy chủ này. Cho tới khi tên phân giải về đây, không tổ chức cấp chứng chỉ nào xác thực được nó. Tên miền vẫn được thêm và phục vụ - với chứng chỉ của panel - và chứng chỉ sẽ được tự động đặt mua ở lần quét AutoSSL tiếp theo khi bản ghi đã có hiệu lực.
- Không cần mở cổng tường lửa nào. Lưu lượng dùng các cổng 80 và 443 sẵn có.
Thêm tên miền
Trên panel: Cài đặt > Tên miền webmail, nhập hostname cạnh tính năng và bấm Lưu. Thông báo bạn nhận được là của chính CLI - "certificate issued", "waiting for DNS to point here", "the front-end rejected it" - không phải một câu "đã lưu" chung chung.
Từ dòng lệnh:
hitechcloudcli webmail domain list
hitechcloudcli webmail domain add meet meet.example.com
hitechcloudcli webmail domain remove meet
Thêm một tên miền sẽ làm lần lượt mọi việc sau: ghi lại tên, ghi /etc/hitechcloud/native/frontend/conf.d/<hostname>.conf, nạp lại front-end, đặt mua chứng chỉ, tạo lại vhost với chứng chỉ đó, cập nhật môi trường của webmail và khởi động lại webmail.
Các tính năng
| Tính năng | Hostname mở ra gì | Các liên kết thuộc về nó |
|---|---|---|
webmail | Hộp thư | - |
meet | Cuộc họp | /meet/join/<code> |
chat | Chat nhóm | /chat/guest/<token> |
files | Tệp | /s/<token> |
docs | Tài liệu | /docs/s/<token> |
booking | Trang đặt lịch | /book/<slug>, /book/manage/<token> |
ai | Trợ lý | - |
Mọi route vẫn hoạt động trên mọi hostname - các tên chỉ là cửa vào, không phải phân vùng. Thứ mà tên riêng của một tính năng thay đổi là màn hình đầu tiên khi ai đó mở nó, và URL gốc của các liên kết mà tính năng đó tạo ra.
Nơi lưu trữ
| Đường dẫn | Nội dung |
|---|---|
/etc/hitechcloud/native/webmail/domains.conf | Mỗi tính năng đã cấu hình một dòng FEATURE_DOMAIN=hostname. Đây là nguồn dữ liệu gốc. |
/etc/hitechcloud/native/frontend/conf.d/<hostname>.conf | Vhost được tạo ra. Được tạo lại bởi webmail configure; sửa thủ công sẽ bị mất. |
/etc/hitechcloud/native/ssl/<hostname>/ | Chứng chỉ và khoá. |
/etc/hitechcloud/native/webmail/webmail.env | FEATURE_HOSTS (host nào là tính năng nào) và APP_EXTRA_ORIGINS (cùng danh sách đó dưới dạng origin, để WebSocket từ các trang đó được chấp nhận). Cả hai đều được suy ra từ domains.conf - hãy sửa tệp conf, không sửa env. |
Những gì tên miền webmail không thay đổi
Đặt tên cho chính hộp thư (mail.example.com) thay đổi nơi khách hàng mở nó và gốc của các liên kết webmail tạo ra cho tính năng đó. Nó không đổi APP_URL trong webmail.env, vẫn là địa chỉ của chính panel (https://<panel host>:2096) - đó là địa chỉ mà đăng nhập một lần đã đăng ký làm redirect URI, và là địa chỉ dùng để tạo email đặt lại mật khẩu và email mời. Cả hai địa chỉ đều tiếp tục hoạt động; đăng nhập qua nhà cung cấp OpenID Connect của panel vẫn quay về địa chỉ của panel.
Gia hạn
Tên miền dịch vụ được gia hạn bởi cùng timer hitechcloud-autossl gia hạn các website đang host, và mỗi lần gia hạn sẽ tạo lại vhost của chúng để chứng chỉ mới thực sự được dùng. Kiểm tra bất cứ lúc nào:
hitechcloudcli ssl status meet.example.com
hitechcloudcli webmail domain list
Gỡ tên miền
Clear trên trang, hoặc hitechcloudcli webmail domain remove <feature>. Vhost bị gỡ và tính năng quay về địa chỉ riêng của webmail. Chứng chỉ vẫn được giữ trên đĩa; gỡ nó bằng hitechcloudcli ssl remove <hostname> nếu tên đó không dùng nữa.
Xử lý sự cố
| Triệu chứng | Nguyên nhân |
|---|---|
| Trình duyệt cảnh báo về chứng chỉ | Tên chưa phân giải về đây khi được thêm, nên chứng chỉ của panel đang được dùng. Sửa bản ghi DNS và chạy hitechcloudcli ssl issue <hostname> --no-wildcard. |
... is a website hosted on this server | Hostname đã là một tên miền đang được host. Vhost của nó thuộc về website đó; hãy chọn một tên không được host. |
... is already the <feature> domain | Hai tính năng không thể dùng chung một tên. Hãy gỡ nó khỏi tính năng kia trước. |
| Trang tải được nhưng thư mới, chat hay cuộc họp không bao giờ kết nối | Origin của WebSocket. APP_EXTRA_ORIGINS trong webmail.env phải liệt kê tên miền; chạy lại lệnh thêm, lệnh này sẽ viết lại nó và khởi động lại webmail. |
| Tên miền hiển thị hộp thư thay vì tính năng của nó | FEATURE_HOSTS trong webmail.env đã cũ, hoặc webmail chưa được khởi động lại: chạy lại hitechcloudcli webmail domain add <feature> <hostname>. |