Skip to content

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/login hoặc https://<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:

text
$INSTALL_PATH/data/caddy/pki/authorities/local/root.crt

Trong đó $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:

bash
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 -sha256

Chỉ 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ụ:

text
Sa2web-internal-root-ca.crt

Khi gửi cho người dùng, đồng thời cung cấp thông tin sau:

MụcMô 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ụnghttps://<APP_DOMAIN>/
Fingerprint chứng chỉFingerprint SHA256 từ openssl ... -fingerprint -sha256
Phạm vi hiệu lựcMá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

  1. Lưu root.crt vào máy.
  2. Nhấp đúp file chứng chỉ, nhấp "Install Certificate".
  3. Chọn "Local Machine". Nếu không có quyền admin, có thể chọn "Current User".
  4. Chọn "Place all certificates in the following store".
  5. Nhấp "Browse" và chọn "Trusted Root Certification Authorities".
  6. Hoàn tất import, đóng và mở lại trình duyệt.
  7. 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:

powershell
Import-Certificate -FilePath .\Sa2web-internal-root-ca.crt -CertStoreLocation Cert:\LocalMachine\Root

Cài đặt macOS

  1. Lưu root.crt vào máy.
  2. Nhấp đúp chứng chỉ, hệ thống mở "Keychain Access".
  3. Import chứng chỉ vào keychain "System".
  4. Tìm chứng chỉ, nhấp đúp mở chi tiết.
  5. Mở "Trust", đặt "When using this certificate" thành "Always Trust".
  6. Nhập mật khẩu hệ thống để lưu.
  7. 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:

bash
sudo cp Sa2web-internal-root-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

RHEL, CentOS, Rocky Linux, AlmaLinux:

bash
sudo cp Sa2web-internal-root-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust

Sau 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:

  1. Mở cài đặt Firefox.
  2. Vào "Privacy & Security".
  3. Tìm "Certificates", nhấp "View Certificates".
  4. Trong tab "Authorities", nhấp "Import".
  5. Chọn root.crt.
  6. Tích "Trust this CA to identify websites".
  7. 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

  1. Gửi root.crt đến thiết bị qua kênh do doanh nghiệp kiểm soát.
  2. Mở file chứng chỉ trên thiết bị và cài profile.
  3. Vào "Settings" > "General" > "VPN & Device Management" để hoàn tất cài profile.
  4. Vào "Settings" > "General" > "About" > "Certificate Trust Settings".
  5. Bật "Full Trust" cho root certificate này.
  6. 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à:

  1. Lưu root.crt vào thiết bị.
  2. Vào "Settings" > "Security" > "Encryption & credentials".
  3. Chọn "Install certificate" hoặc "Install CA certificate".
  4. Chọn root.crt và xác nhận cài đặt.
  5. 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:

text
https://<APP_DOMAIN>/
https://<APP_DOMAIN>/admin/login
https://<APP_DOMAIN>/app/login

Tiê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:

bash
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ânCách xử lý
Trình duyệt vẫn báo không an toànChứng chỉ chưa được cài vào kho root tin cậyImport lại theo bước của OS và restart trình duyệt
Chỉ Firefox báo lỗiFirefox dùng kho chứng chỉ riêngImport riêng trong cài đặt chứng chỉ Firefox
Trình duyệt mobile vẫn báo lỗiHệ điều hành mobile chưa tin hoàn toàn CA nàyiOS 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àiDù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.crtCaddy chưa tạo CA cục bộ hoặc path saiXá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ỗiThiết bị thật của người dùng cộng tác chưa cài root certificateCà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.

Sa2web 1.0.0