Sunday, February 23, 2025

Quản lý Certificate Authorities

-

1. Tổng quan

Trong pfSense, Certificate Management (Quản lý Chứng chỉ) giúp bạn quản lý các chứng chỉ số (SSL/TLS) để bảo mật các dịch vụ như VPN, web interface của pfSense và xác thực người dùng. Nó hỗ trợ việc tạo, nhập và quản lý Certificate Authorities (CA), chứng chỉ serverchứng chỉ người dùng.

Trong các phiên bản mới của pfSense, phần “Certificate Management” đã được thay thế bằng “Certificates” và bạn có thể quản lý chứng chỉ từ System > Certificates và được hiển thị trên tab Certificates.

2. Hiểu về quản lý Certificate Authorities (CA)

Trong pfSense, mục “System / Certificate / Authorities” là nơi bạn quản lý Certificate Authorities (CA), tức là các cơ quan cấp chứng chỉ.

💡 Chức năng chính của mục này:

  • Tạo hoặc nhập CA (Certificate Authority).
    • Nếu bạn có một CA nội bộ (Internal CA), bạn có thể tạo và cấp chứng chỉ cho các dịch vụ nội bộ.
    • Nếu bạn sử dụng Let’s Encrypt hoặc một CA bên ngoài (ví dụ: DigiCert, GlobalSign), bạn có thể import CA để hệ thống tin tưởng chứng chỉ của nó.
  • Xác thực chứng chỉ SSL.
    • Khi một dịch vụ sử dụng chứng chỉ SSL, pfSense sẽ kiểm tra xem CA có hợp lệ không.
  • Cấu hình TLS cho OpenVPN, HAProxy, WebGUI, v.v.
    • Ví dụ: Nếu bạn dùng OpenVPN, bạn cần một CA để cấp chứng chỉ cho VPN Clients.
    • Nếu bạn dùng HAProxy với SSL Termination, bạn có thể cần import CA để xác thực backend servers.

💡 Khi tạo hoặc quản lý Certificate Authorities (CA), bạn có 3 tùy chọn sau:

1️⃣ Create an internal Certificate Authority

👉 Tạo một CA nội bộ

  • Đây là một CA mới, hoàn toàn độc lậptự cấp chứng chỉ.
  • Dùng để cấp chứng chỉ cho hệ thống nội bộ, như OpenVPN, HAProxy, v.v.

Khi nào nên dùng?

  • Khi bạn muốn tự quản lý SSL/TLS mà không cần một CA bên ngoài (Let’s Encrypt, DigiCert, v.v.).
  • Khi thiết lập một hệ thống OpenVPN, nơi bạn cần cấp chứng chỉ cho clients.

⚠️ Lưu ý:

  • Chứng chỉ do CA nội bộ cấp không được trình duyệt công nhận (sẽ có cảnh báo “Not Secure”).
  • Bạn cần cài đặt CA này vào các thiết bị khách để trình duyệt/bộ nhớ cache tin tưởng nó.

2️⃣ Import an existing Certificate Authority

👉 Nhập một CA có sẵn

  • Nếu bạn đã có một CA từ một bên thứ ba (Let’s Encrypt, DigiCert, v.v.), bạn có thể import nó vào pfSense.

Khi nào nên dùng?

  • Khi bạn có chứng chỉ từ một CA thương mại và muốn hệ thống pfSense tin tưởng nó.
  • Khi bạn có một CA nội bộ từ một server khác và muốn sử dụng nó thay vì tạo mới.

⚠️ Yêu cầu:

  • Bạn cần có file CA certificate (thường là .crt hoặc .pem).
  • Nếu CA yêu cầu xác thực, bạn cần cả private key để nhập vào pfSense.

3️⃣ Create an intermediate Certificate Authority

👉 Tạo một CA trung gian

  • Đây là một CA con (Intermediate CA), được cấp bởi một CA gốc (Root CA).
  • Intermediate CA có thể cấp chứng chỉ cho dịch vụ khác, nhưng vẫn dựa vào CA gốc để xác thực.

Khi nào nên dùng?

  • Khi bạn đã có một CA gốc nội bộ nhưng muốn tạo thêm một CA cấp dưới để cấp chứng chỉ cho các hệ thống con.
  • Khi bạn muốn phân quyền cấp chứng chỉ giữa nhiều hệ thống (ví dụ: Một CA gốc cấp cho nhiều Intermediate CA để quản lý dễ hơn).

⚠️ Lưu ý:

  • Bạn cần có CA gốc đã tồn tại trước khi tạo CA trung gian.
  • Hệ thống sẽ không tin tưởng Intermediate CA trừ khi nó có chuỗi tin cậy (Trust Chain) với CA gốc.

🏁 Tóm tắt

Tùy chọnÝ nghĩaKhi nào nên dùng?
Create an internal CATạo CA mới từ đầuKhi bạn muốn tự cấp chứng chỉ nội bộ (OpenVPN, HAProxy, v.v.)
Import an existing CANhập CA từ bên ngoàiKhi bạn có CA từ Let’s Encrypt hoặc một CA khác
Create an intermediate CATạo CA con dựa trên CA gốcKhi bạn có CA gốc và muốn phân quyền cấp chứng chỉ

3. Hiểu về Root Certificate Authority.

CA gốc (Root Certificate Authority) có thể đến từ nhiều nguồn khác nhau, tùy vào hệ thống của bạn. Dưới đây là một số cách phổ biến để có một CA gốc:

🔹 1. Tự tạo một CA gốc nội bộ

  • Bạn có thể tạo một CA gốc trong pfSense hoặc sử dụng một công cụ như openssl, easy-rsa, hoặc Microsoft Active Directory Certificate Services (AD CS).
  • Sau khi tạo CA gốc, bạn có thể tạo CA trung gian (Intermediate CA) dựa trên CA gốc này.
  • Cách này phù hợp nếu bạn muốn tự quản lý tất cả chứng chỉ SSL trong nội bộ.

🔹 Ví dụ:
1️⃣ Bạn vào System → Certificate Manager → Authorities
2️⃣ Chọn Create an internal Certificate Authority để tạo CA gốc
3️⃣ Sau khi tạo xong CA gốc, bạn có thể tiếp tục tạo CA trung gian dựa trên CA gốc này

Ưu điểm:
✔️ Hoàn toàn tự quản lý, không phụ thuộc bên ngoài
✔️ Phù hợp cho các hệ thống nội bộ (VPN, Web UI, HAProxy, v.v.)

⚠️ Nhược điểm:
❌ Không được trình duyệt tin tưởng nếu không cài đặt CA gốc vào hệ thống

🔹 2. Dùng CA từ bên thứ ba (Let’s Encrypt, DigiCert, GlobalSign, v.v.)

  • Nếu bạn mua chứng chỉ từ một CA thương mại như DigiCert, GlobalSign, Sectigo, họ sẽ cung cấp CA gốc cho bạn.
  • Bạn có thể nhập CA gốc này vào pfSense và sau đó tạo CA trung gian để cấp chứng chỉ cho hệ thống nội bộ.
  • Cách này phù hợp nếu bạn muốn sử dụng CA tin cậy cho các dịch vụ như HAProxy, OpenVPN, v.v.

🔹 Ví dụ:
1️⃣ Bạn nhận chứng chỉ CA gốc từ DigiCert (DigiCert_Global_Root_CA.pem)
2️⃣ Nhập CA gốc này vào System → Certificate Manager → Authorities
3️⃣ Tạo CA trung gian dựa trên CA gốc

Ưu điểm:
✔️ Chứng chỉ được trình duyệt và thiết bị tin tưởng
✔️ Không cần tự quản lý CA gốc

⚠️ Nhược điểm:
❌ Có thể tốn phí
❌ CA trung gian vẫn phải phụ thuộc vào CA gốc của bên thứ ba

🔹 3. Dùng CA từ Microsoft Active Directory Certificate Services (AD CS)

  • Nếu bạn có hệ thống Windows Server, bạn có thể cài đặt Active Directory Certificate Services (AD CS) để tạo CA gốc.
  • CA gốc này sau đó có thể cấp CA trung gian, sau đó phân phối chứng chỉ cho các máy tính trong hệ thống Windows.
  • Cách này phổ biến trong các doanh nghiệp lớn có hệ thống Domain Controller (DC).

🔹 Ví dụ:
1️⃣ Cài đặt Active Directory Certificate Services trên Windows Server
2️⃣ Tạo CA gốc trên Windows Server
3️⃣ Xuất CA gốc và nhập vào pfSense
4️⃣ Tạo CA trung gian trên pfSense để cấp chứng chỉ cho các hệ thống nội bộ

Ưu điểm:
✔️ Tích hợp tốt với Windows
✔️ Quản lý CA chặt chẽ và dễ phân phối chứng chỉ

⚠️ Nhược điểm:
❌ Cần Windows Server
❌ Chỉ phù hợp với hệ thống Windows

🏁 Tóm tắt

CA Gốc Lấy Từ Đâu?Dùng Khi Nào?
Tự tạo CA gốc nội bộ trên pfSense hoặc OpenSSLKhi bạn muốn tự cấp chứng chỉ nội bộ (VPN, HAProxy, v.v.)
Dùng CA gốc từ bên thứ ba (Let’s Encrypt, DigiCert)Khi bạn muốn chứng chỉ được trình duyệt tin tưởng
Dùng CA gốc từ Windows AD CSKhi hệ thống chạy Windows Server với Domain Controller

4. Ví dụ chi tiết để tạo một Internal CA (Root CA) và hai Intermediate CAs (Monitoring CA & Wiki CA) trên pfSense để cấp chứng chỉ SSL wildcard cho các subdomains.

Dưới đây là hướng dẫn chi tiết để tạo một Internal CA (Root CA) và hai Intermediate CAs (Monitoring CA & Wiki CA) trên pfSense để cấp chứng chỉ SSL wildcard cho các subdomains.

Dưới đây là sơ đồ ví dụ để biểu diễn hệ thống cấp chứng chỉ của mình:

+---------------------------+
|         Root CA           |
|       hoanghd.com         |
+---------------------------+
              |
+---------------------------+  +------------------------------+
| Intermediate CA - Wiki    |  | Intermediate CA - Monitoring |
| wiki.hoanghd.com          |  | grafana.hoanghd.com          |
|                           |  | prometheus.hoanghd.com       |
+---------------------------+  +------------------------------+

Sơ đồ trên mô tả:

  • Root CA (hoanghd.com): CA gốc cấp chứng chỉ cho các CA trung gian.
  • Intermediate CA – Wiki (wiki.hoanghd.com): Chứng chỉ wildcard cho hệ thống Wiki.
  • Intermediate CA – Monitoring (grafana.hoanghd.com, prometheus.hoanghd.com): Chứng chỉ wildcard cho hệ thống giám sát.

📌 Bước 1: Tạo Internal CA (Root CA)

1️⃣ Vào pfSense → System → Certificates → Authorities

2️⃣ Nhấn “Add” để tạo CA mới

  • Method: Create an internal Certificate Authority
  • Descriptive Name: Root CA
  • Key Type: RSA
  • Key Length: 4096
  • Digest Algorithm: SHA256
  • Lifetime: 20 năm (7300 ngày)
  • Common Name: HoangHD Root CA
  • Country Code: VN
  • State/Province: HoChiMinh
  • City: HoChiMinh
  • Organization: HoangHD Inc.

3️⃣ Nhấn “Save” để tạo Root CA

📌 Bước 2: Tạo Intermediate CA cho Monitoring

1️⃣ Vào System → Certificates → Authorities → Nhấn “Add”

  • Method: Create an intermediate Certificate Authority
  • Descriptive Name: Monitoring CA
  • Signing Certificate Authority: Chọn Root CA
  • Key Type: RSA
  • Key Length: 4096
  • Digest Algorithm: SHA256
  • Lifetime: 10 năm (3650 ngày)
  • Common Name: Monitoring Intermediate CA
  • Country Code: VN
  • State/Province: HoChiMinh
  • City: HoChiMinh
  • Organization: HoangHD Monitoring

2️⃣ Nhấn “Save” để tạo Monitoring CA

📌 Bước 3: Tạo Intermediate CA cho Wiki

1️⃣ Vào System → Certificates → Authorities → Nhấn “Add”

  • Method: Create an intermediate Certificate Authority
  • Descriptive Name: Wiki CA
  • Signing Certificate Authority: Chọn Root CA
  • Key Type: RSA
  • Key Length: 4096
  • Digest Algorithm: SHA256
  • Lifetime: 10 năm (3650 ngày)
  • Common Name: Wiki Intermediate CA
  • Country Code: VN
  • State/Province: HoChiMinh
  • City: HoChiMinh
  • Organization: HoangHD Wiki

2️⃣ Nhấn “Save” để tạo Wiki CA

📌 Bước 4: Cấp chứng chỉ Wildcard cho Monitoring

1️⃣ Vào System → Certificates → Nhấn “Add”

  • Method: Create an internal certificate
  • Descriptive Name: Grafana & Prometheus SSL
  • Certificate Authority: Chọn Monitoring CA
  • Key Type: RSA
  • Key Length: 2048
  • Digest Algorithm: SHA256
  • Lifetime: 5 năm (1825 ngày)
  • Common Name: *.monitoring.hoanghd.com
  • Alternative Names (SANs):
    • grafana.hoanghd.com
    • prometheus.hoanghd.com
  • Certificate Type: Server Certificate

2️⃣ Nhấn “Save” để tạo Wildcard SSL cho Monitoring

📌 Bước 5: Cấp chứng chỉ Wildcard cho Wiki

1️⃣ Vào System → Certificates → Nhấn “Add”

  • Method: Create an internal certificate
  • Descriptive Name: Wiki SSL
  • Certificate Authority: Chọn Wiki CA
  • Key Type: RSA
  • Key Length: 2048
  • Digest Algorithm: SHA256
  • Lifetime: 5 năm (1825 ngày)
  • Common Name: *.wiki.hoanghd.com
  • Alternative Names (SANs):
    • wiki.hoanghd.com
  • Certificate Type: Server Certificate

2️⃣ Nhấn “Save” để tạo Wildcard SSL cho Wiki

📌 Bước 6: Cấu hình HAProxy trên pfSense (Tuỳ chọn)

Sau khi tạo chứng chỉ, bạn có thể:

  • Gán chứng chỉ vào HAProxy để HTTPS hoạt động.
  • Import chứng chỉ vào các phần mềm như Grafana, Prometheus, WikiJS…

📌 Tóm tắt

Internal CA (Root CA): HoangHD Root CA
Intermediate CA 1: Monitoring CA → Dùng cho Grafana, Prometheus
Intermediate CA 2: Wiki CA → Dùng cho Wiki
Wildcard SSL:

  • *.monitoring.hoanghd.com (cấp từ Monitoring CA)
  • *.wiki.hoanghd.com (cấp từ Wiki CA)

Bạn có thể sử dụng hệ thống này để quản lý và cấp phát chứng chỉ SSL riêng biệt cho từng nhóm dịch vụ.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories