Cài đặt chứng chỉ intranet
Mục tiêu
Khi sản phẩm được triển khai trong LAN hoặc mạng riêng, server thường không thể dùng Caddy để tự động xin chứng chỉ public miễn phí như Let's Encrypt. Nếu khi cài đặt chọn chứng chỉ nội bộ Caddy, cần cài chứng chỉ root cục bộ của Caddy trên thiết bị truy cập để trình duyệt tin cậy chứng chỉ HTTPS do hệ thống phát hành, tránh cảnh báo như "không an toàn", "chứng chỉ không hợp lệ" hoặc "kết nối của bạn không riêng tư".
Phần này áp dụng cho các tình huống:
- Truy cập bằng IP intranet, domain intranet hoặc domain không resolve public.
- Trong script cài đặt đã chọn "dùng chứng chỉ tự ký Caddy" hoặc Caddy internal certificate.
- Trang quản trị, portal người dùng hoặc liên kết cộng tác mở được nhưng trình duyệt báo chứng chỉ không được tin cậy.
Điều kiện
- Đã triển khai sản phẩm và service đã khởi động.
- Đã xác nhận địa chỉ truy cập, ví dụ
https://<APP_DOMAIN>/admin/loginhoặchttps://<APP_DOMAIN>/app/login. - Có thể đăng nhập server cài đặt và đọc thư mục cài đặt.
- Đã xác định loại thiết bị cần cài chứng chỉ, như Windows, macOS, Linux, iOS, Android hoặc Firefox.
Lấy chứng chỉ root Caddy
Trên server cài đặt, tìm chứng chỉ root cục bộ của Caddy:
$INSTALL_PATH/data/caddy/pki/authorities/local/root.crtTrong đó $INSTALL_PATH là thư mục cài đặt sản phẩm, ví dụ /opt/sa. Có thể dùng lệnh sau để xác nhận file tồn tại:
ls -l $INSTALL_PATH/data/caddy/pki/authorities/local/root.crt
openssl x509 -in $INSTALL_PATH/data/caddy/pki/authorities/local/root.crt -noout -subject -issuer -fingerprint -sha256Chỉ phân phát root.crt cho người dùng cần truy cập hệ thống. Không phân phát file private key cùng thư mục và không upload private key lên công cụ chat, ổ mạng hoặc email attachment.
Khuyến nghị phân phát
Đổi tên root.crt thành tên dễ nhận diện, ví dụ:
Sa2web-internal-root-ca.crtKhi gửi cho người dùng, đồng thời cung cấp thông tin sau:
| Mục | Mô tả |
|---|---|
| Mục đích chứng chỉ | Chỉ dùng để tin cậy truy cập HTTPS intranet của Sa2web |
| Địa chỉ áp dụng | https://<APP_DOMAIN>/ |
| Fingerprint chứng chỉ | Fingerprint SHA256 từ openssl ... -fingerprint -sha256 |
| Phạm vi hiệu lực | Máy văn phòng, máy test hoặc thiết bị di động cần truy cập hệ thống |
Nếu doanh nghiệp có nền tảng quản lý endpoint thống nhất, nên dùng domain control, MDM, nền tảng quản lý thiết bị hoặc image hệ thống để phát chứng chỉ root tập trung, tránh lỗi khi người dùng tự cài.
Cài đặt Windows
- Lưu
root.crtvào máy. - Nhấp đúp file chứng chỉ, nhấp "Install Certificate".
- Chọn "Local Machine". Nếu không có quyền admin, có thể chọn "Current User".
- Chọn "Place all certificates in the following store".
- Nhấp "Browse" và chọn "Trusted Root Certification Authorities".
- Hoàn tất import, đóng và mở lại trình duyệt.
- Truy cập lại
https://<APP_DOMAIN>/admin/loginđể xác minh trạng thái chứng chỉ.
Có thể dùng PowerShell admin để import vào kho root local machine:
Import-Certificate -FilePath .\Sa2web-internal-root-ca.crt -CertStoreLocation Cert:\LocalMachine\RootCài đặt macOS
- Lưu
root.crtvào máy. - Nhấp đúp chứng chỉ, hệ thống mở "Keychain Access".
- Import chứng chỉ vào keychain "System".
- Tìm chứng chỉ, nhấp đúp mở chi tiết.
- Mở "Trust", đặt "When using this certificate" thành "Always Trust".
- Nhập mật khẩu hệ thống để lưu.
- Thoát và mở lại trình duyệt, rồi truy cập địa chỉ hệ thống.
Nếu dùng Chrome, Safari hoặc Edge, thường sẽ đọc keychain hệ thống macOS. Firefox có thể cần import thêm, xem "Cài đặt Firefox".
Cài đặt Linux
Debian, Ubuntu:
sudo cp Sa2web-internal-root-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificatesRHEL, CentOS, Rocky Linux, AlmaLinux:
sudo cp Sa2web-internal-root-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trustSau khi cài, đóng và mở lại trình duyệt. Nếu trình duyệt vẫn báo không tin cậy, kiểm tra trình duyệt có dùng kho chứng chỉ riêng không, đặc biệt là Firefox.
Cài đặt Firefox
Trong một số môi trường, Firefox không hoàn toàn phụ thuộc kho chứng chỉ hệ thống, có thể import root certificate trực tiếp:
- Mở cài đặt Firefox.
- Vào "Privacy & Security".
- Tìm "Certificates", nhấp "View Certificates".
- Trong tab "Authorities", nhấp "Import".
- Chọn
root.crt. - Tích "Trust this CA to identify websites".
- Xác nhận rồi restart Firefox.
Môi trường doanh nghiệp cũng có thể bật chính sách enterprise root của Firefox để Firefox tin cậy kho chứng chỉ hệ điều hành.
Cài đặt iOS và iPadOS
- Gửi
root.crtđến thiết bị qua kênh do doanh nghiệp kiểm soát. - Mở file chứng chỉ trên thiết bị và cài profile.
- Vào "Settings" > "General" > "VPN & Device Management" để hoàn tất cài profile.
- Vào "Settings" > "General" > "About" > "Certificate Trust Settings".
- Bật "Full Trust" cho root certificate này.
- Mở lại Safari hoặc trình duyệt khác để truy cập hệ thống.
Cài đặt Android
Tên menu khác nhau theo hãng, thường là:
- Lưu
root.crtvào thiết bị. - Vào "Settings" > "Security" > "Encryption & credentials".
- Chọn "Install certificate" hoặc "Install CA certificate".
- Chọn
root.crtvà xác nhận cài đặt. - Mở lại trình duyệt để truy cập hệ thống.
Một số phiên bản Android hoặc trình duyệt doanh nghiệp có thể không tin CA do người dùng tự cài. Nếu gặp hạn chế, nên phát chứng chỉ qua MDM hoặc chính sách quản lý thiết bị.
Xác minh kết quả cài đặt
Sau khi cài xong, truy cập:
https://<APP_DOMAIN>/
https://<APP_DOMAIN>/admin/login
https://<APP_DOMAIN>/app/loginTiêu chuẩn xác minh:
- Thanh địa chỉ trình duyệt không còn hiển thị lỗi chứng chỉ.
- Chuỗi chứng chỉ có thể thấy chứng chỉ root cục bộ Caddy.
- Trang quản trị và portal người dùng đăng nhập bình thường.
- Liên kết cộng tác trên thiết bị truy cập đích cũng không còn báo chứng chỉ không tin cậy.
Nếu cần xác minh bằng dòng lệnh, chạy trên client:
curl -I https://<APP_DOMAIN>/Nếu hệ thống client đã tin cậy root certificate, lệnh sẽ trả về HTTP header bình thường.
Cập nhật và cài lại chứng chỉ
Các trường hợp sau cần phân phát và cài lại root certificate:
- Cài lại sản phẩm và đã xóa
$INSTALL_PATH/data/caddy/pki. - Đổi thư mục cài đặt hoặc di chuyển sang server mới khiến Caddy internal CA được tạo lại.
- Xóa hoặc xoay vòng thủ công chứng chỉ root cục bộ Caddy.
- Thiết bị người dùng cài lại OS hoặc dọn kho root tin cậy.
Khi nâng cấp sản phẩm, nếu giữ lại $INSTALL_PATH/data, thường không cần cài lại root certificate.
Vấn đề thường gặp
| Vấn đề | Nguyên nhân | Cách xử lý |
|---|---|---|
| Trình duyệt vẫn báo không an toàn | Chứng chỉ chưa được cài vào kho root tin cậy | Import lại theo bước của OS và restart trình duyệt |
| Chỉ Firefox báo lỗi | Firefox dùng kho chứng chỉ riêng | Import riêng trong cài đặt chứng chỉ Firefox |
| Trình duyệt mobile vẫn báo lỗi | Hệ điều hành mobile chưa tin hoàn toàn CA này | iOS cần bật Full Trust; Android nên phát qua MDM |
| Domain không khớp chứng chỉ | Địa chỉ truy cập không phải domain hoặc IP đã cấu hình khi cài | Dùng domain truy cập hệ thống đã cấu hình hoặc cấu hình lại chứng chỉ |
Không tìm thấy root.crt | Caddy chưa tạo CA cục bộ hoặc path sai | Xác nhận $INSTALL_PATH, khởi động service rồi kiểm tra lại |
| Người dùng cộng tác vẫn báo lỗi | Thiết bị thật của người dùng cộng tác chưa cài root certificate | Cài root certificate vào thiết bị thực tế dùng để truy cập |
Lưu ý bảo mật
- Chỉ cài root certificate từ kênh đã được admin xác nhận.
- Trước khi cài, đối chiếu fingerprint SHA256 để tránh cài sai chứng chỉ.
- Không phân phát private key CA của Caddy.
- Khi nhân viên nghỉ việc, thu hồi thiết bị hoặc loại bỏ terminal, hãy gỡ chứng chỉ root không còn cần theo chính sách bảo mật doanh nghiệp.