Danh mục sản phẩm
Certificate trên FortiGate: Local Cert, CA, Import
1. Liên hệ thực tế
Khách hàng yêu cầu đổi trang đăng nhập quản trị GUI và SSL-VPN từ chứng chỉ tự ký (self-signed) mặc định của FortiGate sang chứng chỉ đã được CA công cộng (như DigiCert) xác thực, để trình duyệt không còn báo cảnh báo "kết nối không an toàn" mỗi khi nhân viên truy cập.
Anh Nam lúng túng: "Em có sẵn 1 file .crt và 1 file .key do bên bán chứng chỉ gửi, nhưng vào FortiGate thấy có tới mấy kiểu import — Certificate, Local Certificate, PKCS#12 — không biết chọn kiểu nào."
Chị Lan giải thích: "Cách bên bán gửi cho anh 2 file riêng — .crt và .key — khác với trường hợp CSR tự sinh trên FortiGate. Chọn đúng kiểu import tùy vào CSR được tạo ở đâu: trên FortiGate hay ở nơi khác."
Bài này giới thiệu khái niệm chứng chỉ số (Certificate) trên FortiGate — CSR, Local Certificate, CA Certificate — và các cách import phù hợp từng tình huống thực tế.
2. Kiến thức cốt lõi
2.1 Ba loại chứng chỉ chính trên FortiGate
- Local Certificate — chứng chỉ của chính FortiGate (hoặc dịch vụ nó đại diện), dùng cho GUI quản trị, SSL-VPN, hoặc để ký lại traffic khi làm SSL Deep Inspection (học ở bài sau).
- CA Certificate — chứng chỉ gốc của tổ chức phát hành (Certificate Authority), dùng để FortiGate xác định một Local Certificate hoặc chứng chỉ server khác có đáng tin cậy hay không.
- Remote Certificate — chứng chỉ public của một bên thứ ba mà FortiGate cần lưu lại để xác thực (ví dụ khi làm SSL VPN peer, hoặc xác thực server LDAPS).
2.2 Quy trình lấy Local Certificate đã ký từ CA
Đây chính là tình huống mở đầu bài — muốn có chứng chỉ được trình duyệt tin cậy mà không cảnh báo, cần chứng chỉ do một CA công cộng ký.
Bước 1 — Tạo CSR (Certificate Signing Request) trên FortiGate:
execute vpn certificate local generate rsa "cert-quantri" 2048 \ "CN=fortigate.congty.vn,O=CongTy,C=VN" "VN" "TP.HCM" "TP.HCM" "CongTy" "IT" "it@congty.vn"
Khi CSR được tạo, FortiGate tự sinh và giữ lại private key ngay trên thiết bị — chỉ nội dung CSR (không chứa private key) mới được xuất ra để gửi cho CA.
Bước 2 — Gửi CSR cho CA: CA (DigiCert, GoDaddy, GlobalSign...) xác minh thông tin và ký, trả về file chứng chỉ .cer đã ký.
Bước 3 — Import chứng chỉ đã ký về đúng CSR ban đầu:
execute vpn certificate local import tftp cert-quantri.cer 192.168.1.100 certificate
⚠️ Lưu ý quan trọng: Vì private key đã tồn tại sẵn trên FortiGate từ bước tạo CSR, khi import chứng chỉ đã ký không cần và không được upload lại private key — chỉ upload đúng 1 file
.cer. Đây là kiểu import gọi là "Certificate" trên GUI, khác biệt với các kiểu import khác.
2.3 Import chứng chỉ khi CSR không tạo trên FortiGate
Nếu chứng chỉ (và private key) được tạo ở nơi khác — như trường hợp anh Nam nhận file .crt và .key riêng biệt từ nhà cung cấp — cần dùng kiểu import khác, vì FortiGate chưa từng có private key tương ứng.
Trường hợp 2 file riêng biệt (.cer + .key), có mật khẩu bảo vệ private key:
Trên GUI: System > Certificates > Create/Import > Certificate, chọn Type = Certificate, upload cả file certificate và file key, nhập mật khẩu.
Trường hợp file PKCS#12 (.p12/.pfx) gộp chung cả certificate lẫn private key:
execute vpn certificate local import tftp cert-bundle.p12 192.168.1.100 pkcs12 <password>
⚠️ Lưu ý: Vì cả hai kiểu import này đều tải private key lên FortiGate, luôn yêu cầu mật khẩu bảo vệ file key trong quá trình import — khác hẳn với kiểu "Certificate" ở mục 2.2 (dùng CSR tự sinh trên FortiGate) không cần và không hỏi mật khẩu, vì private key chưa từng rời khỏi thiết bị.
2.4 CA Certificate — cài đặt chứng chỉ gốc để tin cậy
Ngoài Local Certificate, FortiGate cần cài CA Certificate (chứng chỉ gốc) khi cần tin cậy các chứng chỉ do CA đó ký — ví dụ khi FortiGate đóng vai trò client kết nối tới một server dùng chứng chỉ nội bộ (private CA của công ty), hoặc khi làm SSL Deep Inspection cần một CA riêng để ký lại traffic.
execute vpn certificate ca import tftp ca-noibo.pem 192.168.1.100
Trên FortiGate mặc định đã có sẵn danh sách CA công cộng phổ biến (tương tự trình duyệt) để tin cậy các chứng chỉ website thông thường trên Internet — chỉ cần import thêm CA khi có nhu cầu đặc thù như CA nội bộ công ty.
2.5 Gán chứng chỉ cho GUI quản trị và SSL-VPN
Sau khi import xong, gán chứng chỉ vào đúng dịch vụ sử dụng:
config system global
set admin-server-cert "cert-quantri"
end
config vpn ssl settings
set servercert "cert-quantri"
end
⚠️ Lưu ý: Đổi
admin-server-certsẽ khiến trình duyệt cảnh báo lại một lần ngay sau khi áp dụng nếu CA chưa được tin cậy sẵn trên máy — nhưng nếu dùng chứng chỉ từ CA công cộng đã được cài sẵn trong hầu hết trình duyệt/hệ điều hành hiện đại, cảnh báo sẽ biến mất hoàn toàn sau đó, đúng như mục tiêu ban đầu của khách hàng.
2.6 Bảng tổng hợp các kiểu import
| Kiểu import | Khi nào dùng | Cần private key? |
|---|---|---|
| Certificate (từ CSR tự sinh) | CSR đã tạo trên FortiGate | Không (đã có sẵn) |
| Certificate + Key (2 file riêng) | Certificate và key tạo ở nơi khác, 2 file tách biệt | Có, cần mật khẩu |
| PKCS#12 | Certificate và key gộp chung 1 file .p12/.pfx |
Có, cần mật khẩu |
| CA Certificate | Cài chứng chỉ gốc để tin cậy | Không |
3. Hỏi & Đáp
Nếu import nhầm kiểu (ví dụ chọn "Certificate" cho file có kèm private key riêng) thì sao?
FortiGate sẽ báo lỗi hoặc không nhận đúng file, vì kiểu "Certificate" (từ CSR tự sinh) chỉ chấp nhận đúng 1 file .cer không kèm key. Cần xác định đúng nguồn gốc CSR trước khi chọn kiểu import tương ứng.
Chứng chỉ tự ký (self-signed) mặc định của FortiGate có vấn đề bảo mật gì không?
Bản thân việc mã hóa vẫn hoạt động bình thường (traffic vẫn được bảo vệ bằng SSL/TLS), vấn đề chỉ nằm ở việc xác thực danh tính — trình duyệt không có cách nào tự động tin cậy chứng chỉ tự ký, nên luôn cảnh báo. Với môi trường production công khai, nên dùng chứng chỉ từ CA công cộng để tránh cảnh báo và tăng độ tin cậy với người dùng cuối.
Chứng chỉ có hạn dùng không, và điều gì xảy ra khi hết hạn?
Có — mọi chứng chỉ số đều có ngày hết hạn. Khi hết hạn, dịch vụ liên quan (GUI, SSL-VPN...) sẽ hiển thị cảnh báo hết hạn tương tự chứng chỉ không hợp lệ. Nên theo dõi ngày hết hạn và gia hạn trước khi hết hạn thực tế; một số kiểu chứng chỉ (như qua giao thức ACME) hỗ trợ tự động gia hạn.
Có thể dùng cùng 1 Local Certificate cho cả GUI quản trị lẫn SSL-VPN không?
Có — hoàn toàn có thể gán cùng một Local Certificate cho nhiều dịch vụ khác nhau (admin-server-cert và servercert trong ví dụ trên), miễn chứng chỉ đó hợp lệ và còn hạn sử dụng.
4. Quiz
Câu 1: Khi CSR được tạo trực tiếp trên FortiGate, private key được lưu trữ ở đâu?
- A. Gửi kèm CSR cho CA
- B. Giữ lại ngay trên FortiGate, không xuất ra ngoài
- C. Không được tạo cho tới khi import xong
- D. Lưu trên máy tính quản trị
Câu 2: Kiểu import nào phù hợp khi CSR đã được tạo sẵn trên FortiGate và CA chỉ trả về đúng 1 file .cer?
- A. PKCS#12
- B. Certificate (không cần key)
- C. CA Certificate
- D. Remote Certificate
Câu 3: File PKCS#12 (.p12/.pfx) khác gì so với cặp file .cer + .key riêng biệt?
- A. PKCS#12 gộp chung cả certificate lẫn private key trong 1 file
- B. PKCS#12 không chứa private key
- C. Không có sự khác biệt nào
- D. PKCS#12 chỉ dùng được cho IPv6
Câu 4: CA Certificate trên FortiGate dùng để làm gì?
- A. Thay thế hoàn toàn Local Certificate
- B. Giúp FortiGate xác định một chứng chỉ khác có đáng tin cậy hay không
- C. Chỉ dùng cho DHCP
- D. Không có tác dụng thực tế
Câu 5: Vì sao khi import chứng chỉ theo kiểu "Certificate" (từ CSR tự sinh), FortiGate không yêu cầu mật khẩu?
- A. Vì kiểu này không hỗ trợ mã hóa
- B. Vì private key đã có sẵn trên FortiGate từ bước tạo CSR, không cần upload lại
- C. Vì đây là lỗi của FortiOS
- D. Vì luôn cần mật khẩu, không có ngoại lệ
👉 Đáp án
Câu 1: B Khi CSR được tạo trên FortiGate, private key được tự động sinh ra và giữ lại ngay trên thiết bị — chỉ nội dung CSR (không chứa private key) được xuất ra để gửi cho CA.
Câu 2: B Kiểu "Certificate" (không cần key) phù hợp khi CSR đã tạo sẵn trên FortiGate, chỉ cần upload đúng file .cer mà CA trả về, không kèm private key.
Câu 3: A PKCS#12 gộp chung cả certificate và private key trong một file duy nhất, khác với cặp file .cer + .key tách biệt.
Câu 4: B CA Certificate giúp FortiGate xác định một Local Certificate hoặc chứng chỉ server khác có đáng tin cậy hay không, dựa trên việc chứng chỉ đó có được ký bởi CA đã cài đặt hay không.
Câu 5: B Vì private key đã tồn tại sẵn trên FortiGate ngay từ bước tạo CSR, không cần và không được upload lại private key khi import chứng chỉ đã ký theo kiểu này.
📚 Bài viết thuộc khóa học FortiGate của VNExperts
🧭 Điều hướng
| ⬅️ Bài trước | 🏠 Mục lục khóa học | Bài kế tiếp ➡️ |
|---|---|---|
| Identity Policy & Authentication Rule | Mục lục khóa học FortiGate | SSL Inspection: Certificate Inspection vs Deep Inspection |
