Sunday, February 23, 2025

Quản lý Certificate Management trên pfSense

-

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. Quy trình quản lý Certificate Management trên pfSense

Đây là phần quản lý chứng chỉ số trên pfSense, cho phép bạn tạo, nhập và ký chứng chỉ phục vụ cho các dịch vụ như HTTPS, OpenVPN, HAProxy, v.v.

Khi tạo hoặc quản lý chứng chỉ, bạn có các tùy chọn sau:

🔹 Create an internal Certificate

  • Dùng để tạo một chứng chỉ nội bộ từ một Certificate Authority (CA) đã có trong hệ thống.
  • Bạn có thể tạo chứng chỉ cho các dịch vụ như OpenVPN, HAProxy (SSL/TLS), WebGUI của pfSense, hoặc thiết bị/server trong mạng nội bộ.
  • Chứng chỉ này có thể được cấp bởi:
    • Root CA (CA gốc)
    • Intermediate CA (CA trung gian)

🔹 Ví dụ:
Bạn có Root CA (hoanghd.com), bạn có thể tạo một Internal Certificate cho wiki.hoanghd.com để sử dụng SSL trên HAProxy.

🔹 Import an existing Certificate

  • Nếu bạn đã có một chứng chỉ từ một nhà cung cấp bên thứ ba (Let’s Encrypt, DigiCert, GlobalSign, v.v.), bạn có thể nhập vào pfSense.
  • Yêu cầu:
    • File chứng chỉ (.crt hoặc .pem)
    • File private key (.key)
    • Certificate Chain (nếu có, để xác thực CA gốc)

🔹 Ví dụ:
Bạn đã lấy chứng chỉ Wildcard SSL từ Let’s Encrypt (hoanghd.com), bạn có thể import nó vào pfSense để sử dụng cho HAProxy.

🔹 Create a Certificate Signing Request (CSR)

  • Khi bạn cần lấy chứng chỉ từ một CA bên ngoài (như Let’s Encrypt, DigiCert, v.v.), bạn sẽ tạo một Certificate Signing Request (CSR).
  • CSR chứa thông tin về chủ sở hữu chứng chỉ, public key và sẽ được CA ký thành chứng chỉ hợp lệ.

🔹 Ví dụ:
Bạn muốn lấy chứng chỉ Wildcard SSL từ Let’s Encrypt, bạn cần tạo CSR cho *.hoanghd.com, sau đó gửi CSR này đến Let’s Encrypt để lấy chứng chỉ.

🔹 Sign a Certificate Signing Request (CSR)

  • Nếu bạn có một CSR từ một server hoặc thiết bị khác và muốn sử dụng Internal CA của pfSense để ký nó thành một chứng chỉ hợp lệ.
  • Chỉ hoạt động nếu bạn đã có một Internal CA hoặc Intermediate CA trong pfSense.

🔹 Ví dụ:
Server monitoring.hoanghd.com gửi một CSR lên pfSense, bạn có thể dùng Internal CA (hoanghd.com) để ký và tạo chứng chỉ hợp lệ cho nó.

Khi nào dùng từng tùy chọn?

Tình huốngChọn tùy chọn nào?
Cần tạo chứng chỉ nội bộ cho VPN, HAProxy, v.v.Create an internal Certificate
Đã có chứng chỉ từ bên thứ ba (Let’s Encrypt, v.v.)Import an existing Certificate
Cần lấy chứng chỉ từ CA bên ngoàiCreate a Certificate Signing Request (CSR)
Cần cấp chứng chỉ cho server nội bộ bằng Internal CASign a Certificate Signing Request

3. Ví dụ cho quy trình quản lý Certificate Management trên pfSense

3.1. Create an internal Certificate

Ví dụ về Create an internal Certificate bạn có thể xem lại bài https://wiki.hoanghd.com/quan-ly-certificate-authorities/

3.2. Create a Certificate Signing Request

CSR là một yêu cầu cấp chứng chỉ gửi đến một Certificate Authority (CA) bên ngoài (như Let’s Encrypt, Digicert, Sectigo…) để cấp SSL hợp lệ.

📌 Khi nào cần dùng?

  • Khi bạn muốn sử dụng chứng chỉ SSL được công nhận trên toàn cầu thay vì tự cấp bằng Internal CA.
  • Khi bạn muốn lấy chứng chỉ từ nhà cung cấp bên ngoài như Let’s Encrypt, Digicert, GlobalSign, v.v.

CSR là một yêu cầu cấp chứng chỉ gửi đến một Certificate Authority (CA) bên ngoài (như Let’s Encrypt, Digicert, Sectigo…) để cấp SSL hợp lệ.

📌 Ví dụ thực tế lấy chứng chỉ SSL từ Let’s Encrypt cho wiki.hoanghd.com.

📝 Mục tiêu:

  • Lấy chứng chỉ SSL hợp lệ từ Let’s Encrypt cho wiki.hoanghd.com.

📌 Các bước thực hiện:

🔹 Bước 1: Tạo CSR trên pfSense

  • Đi đến: System / Certificates / Certificates
  • Nhấn: Add
  • Chọn: Create a Certificate Signing Request
  • Điền thông tin:
    • Descriptive name: CSR - wiki.hoanghd.com
    • Common Name: wiki.hoanghd.com
    • Alternative Names:
      • DNS: wiki.hoanghd.com
    • Key length: 2048
    • Digest Algorithm: SHA256
  • Nhấn Save

📌 Sau khi tạo, bạn sẽ có:

  • CSR File (Dùng để gửi đến CA)
  • Private Key (Dùng để ghép với chứng chỉ sau này)

🔹 Bước 2: Gửi CSR đến Let’s Encrypt

CSR là một yêu cầu cấp chứng chỉ thủ công, thường dùng khi bạn muốn:
✔️ Mua chứng chỉ SSL từ một CA (Certificate Authority) như DigiCert, Sectigo, hoặc Let’s Encrypt (nếu dùng thủ công).
✔️ Tạo chứng chỉ để gửi cho một CA bên ngoài để họ ký (external – signature pending).

Xuất file CSR.

  • Vào System → Certificates → Certificates.
  • Tìm mục "CSR - wiki.hoanghd.com (external - signature pending)".
  • Nhấn Export để tải file CSR+-+wiki.hoanghd.com.req.

Gửi CSR cho nhà cung cấp chứng chỉ

  • Vào trang quản lý của nhà cung cấp SSL (DigiCert, Sectigo, v.v.).
  • Chọn đăng ký chứng chỉ (SSL/TLS Certificate Request).
  • Upload file CSR+-+docs.hoanghd.com.req hoặc copy nội dung của nó (bắt đầu bằng -----BEGIN CERTIFICATE REQUEST-----).

💡 Lưu ý: Khi gửi CSR, bạn cần chọn loại xác minh (DV, OV, EV):
DV (Domain Validation): Xác minh nhanh qua DNS hoặc email.
OV/EV (Organization/Extended Validation): Cần cung cấp giấy phép kinh doanh.

Nhận chứng chỉ SSL từ CA

Sau khi xác minh thành công, bạn sẽ nhận được một số file, thường là:

  • Chứng chỉ chính (.crt hoặc .pem) – dành cho docs.hoanghd.com.
  • Chứng chỉ trung gian (intermediate CA, .crt hoặc .pem) – giúp trình duyệt tin tưởng vào chứng chỉ chính.
  • Chứng chỉ gốc (root CA, .crt hoặc .pem, có thể không cần tải riêng).

Cài đặt chứng chỉ vào pfSense

Vào System → Certificates → Certificates.

Tìm mục "CSR - docs.hoanghd.com (external - signature pending)", bấm edit.

Dán nội dung file .crt mà bạn nhận được vào Final certificate data và bấm update.

Đây là ví dụ nội dung file .crt mà bạn nhận được dán vào Final certificate data.

Bấm update và kiểm tra chứng chỉ, bạn sẽ thấy kết quả như dưới.

3.3. Sign a Certificate Signing Request.

🔹 Ký một Certificate Signing Request (CSR) bằng Intermediate CA (Wiki CA)

Ví dụ bạn đã có Wiki CAIntermediate CA (không phải Root CA), nên bạn sẽ sử dụng nó để ký CSR (docs.hoanghd.com.csr).

Chuẩn bị CSR

Trước khi ký CSR trên pfSense, bạn cần có một tệp .csr. Nếu bạn chưa có, tạo nó trên server bằng lệnh:

root@monitoring-100:~# mkdir ssl
root@monitoring-100:~# cd ssl/
root@monitoring-100:~/ssl# openssl req -new -newkey rsa:2048 -nodes -keyout docs.hoanghd.com.key -out docs.hoanghd.com.csr -subj "/C=VN/ST=HoChiMinh/L=HoChiMinh/O=HoangHD Wiki/CN=docs.hoanghd.com"
...........+.........+...+...........+....+...+...+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.......+.......+............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.................+...........+......+...+.........+.............+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.+...........+.+..+...+....+.....+....+..+.......+.....+................+..+....+......+..+...+....+......+..+.............+.....+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.........+....+........+......+.......+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+................+..+.............+..+....+...+..+.+........+.+......+..+...+....+...........+...+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
root@monitoring-100:~/ssl# tree
.
├── docs.hoanghd.com.csr
└── docs.hoanghd.com.key

0 directories, 2 files

Sau khi tạo, mở file docs.hoanghd.com.csr để sao chép nội dung:

shell> cat docs.hoanghd.com.csr
-----BEGIN CERTIFICATE REQUEST-----
MIICrDCCAZQCAQAwZzELMAkGA1UEBhMCVk4xEjAQBgNVBAgMCUhvQ2hpTWluaDES
MBAGA1UEBwwJSG9DaGlNaW5oMRUwEwYDVQQKDAxIb2FuZ0hEIFdpa2kxGTAXBgNV
BAMMEGRvY3MuaG9hbmdoZC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDKInyU3/DBgw1ACXwNfCFaz1Rh+5+h0lZrASW9i4xosO4kGba7dKiygGDP
vSjmDd5GieRUvcioECHg9VgigWDU1Kz4Th9tjnAqUHxPOh80g6vLGBTTFUYVkRuk
8t2JwrQ8B70gxtTONN58HFSNiE9jC9dBAMeo3sy3OBxgqA6yTZJcfsSf+Gwj28yD
fr/dD6fL8oBPakZP5xPi1Ez0H1HolZaKibrwP5oGW9MZV1xwoHYPfCjyGUx5vXHw
V4rL40FrHxUKnE96Jnl7Omwal5nOuPOfCA+OFjPzN8g/NmAdq8ttVufWpKsMuMfs
HZ32fqReemUaKYvTOh4JZgoVgJkbAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEA
M9TxzcDgtO5Yx8bRMWNj+9n4f1riwPPAjeCiD4yIGIP3239RLwIDmLbwZbWPitzA
WmblWyosll8CwkPfGcl6CRFftcqiFd/R9Aw6G/ExgeB0HDwYTREsedS6U8XyRhOS
OvgAiSUVKp6dWrZOo6Dy8qM9OJUSaQgkIshlGyTTeP1B0cOggLY4DgG3JcOP9hJe
3YOesNy1CtJ0sI6rFa7MLI2BXexxkEcjTrts9CNrknUIGhP+C+vroVSUUGJ2VBaC
vb2oPP+fOkf4u2k8KN7nC3mO4b6ltu9VsV0tIHCaxA3TUJ1abfMQW9auzKpV6bVe
L75s/a4uEM/bgYSyNRuz5A==
-----END CERTIFICATE REQUEST-----
shell> cat docs.hoanghd.com.key
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDKInyU3/DBgw1A
CXwNfCFaz1Rh+5+h0lZrASW9i4xosO4kGba7dKiygGDPvSjmDd5GieRUvcioECHg
9VgigWDU1Kz4Th9tjnAqUHxPOh80g6vLGBTTFUYVkRuk8t2JwrQ8B70gxtTONN58
HFSNiE9jC9dBAMeo3sy3OBxgqA6yTZJcfsSf+Gwj28yDfr/dD6fL8oBPakZP5xPi
1Ez0H1HolZaKibrwP5oGW9MZV1xwoHYPfCjyGUx5vXHwV4rL40FrHxUKnE96Jnl7
Omwal5nOuPOfCA+OFjPzN8g/NmAdq8ttVufWpKsMuMfsHZ32fqReemUaKYvTOh4J
ZgoVgJkbAgMBAAECggEAC4FHZzXdcmlu9KK79wyGQ+PvIQPKBAaAn4CMnfhDND/c
N7cBXQDfC6Hqk+7OIbub8WN7coztNQ7azsuuifA+C0vu0gdB5+HZzB7FCvSU8bYM
FJHShZ0wkWoVkVLqSlZug2HK+wJpYTJ5kCwQoZANOYCWbn9Vd4aO6MX+n39eFS0V
6Co2rfHv6TJ8IzcQfrCAu6bEy1CqoTrEPr6VVPp20o3wyh17HJsadt9SE+tfBj1E
qhoHN4c+UyFZzeGjr9TqL7toOMbp1S10EyZG5We3LrsP/JUUvzgCsXu/yiQBAQmJ
1EQgDeqErFygZ2MrQ2o4e3n+EYndebvpPD02aHN+mQKBgQDOFNfWUey0+ljf2Nhp
k5BC2H88olgbrWNzsmL5CVQJEH2fg31bPhAi9UY+VUu6oUttBwVhkoIRw84iWX6B
d3ql05Yrl2p9prmH2V2xKRhzWKlI/C3BUiNoCy5wAHR38nukEz+R1yNmb4Oz+BTl
DYV+QswXtXav2uHQRp67hLsYHQKBgQD7GOhNyM7oBE0RoxYx4C3/r2QGjJ52N1tn
bOclFlwskVNt0g/YN2SwX6bfR8vMFauqWsHu5Jp3CZMegOk1Jr4lUD5QuVoFl+eR
DquFJXKzp8Xh3Z88Deo81fvxfNNzyObMZ4gnXmEthZQQGGjJJhanFTX8VV8aejuw
A3qMiHzglwKBgQC/kDByUQUv1eb3baL9wOXAvW7I9j/gunRP/+pwhHNRWbrspFXK
kw588HKzTqZufbCXUId4A7BUwybCV155Co8/xkc5ji63Tlv4I94r6H+J+UijR4dg
xPGUrZAlHMcnGIhGJH5bGxkVB2PtzxXdNYx5qa39+/ivz09JQ9wZg3BHIQKBgQCv
2k/HOh197JU1BuyiXYiZivIYjB7mV/qRwnlXRgOjytuNDBLAsHq58yNhOF0IPx0M
n6c2ca+kMnZwZIPvD4UXiM07p7PeOvaYZpfFFebw30z81EOSwYQMuyhJhcxpSIgr
G08Fk1mnkeeSJiYsyZoPxhEa+YczeeuXZ7hJ98TNXQKBgH9TUnGERSpalGLE7VUO
5Zcqk7Mns0fLtUvYiC5BmlwgygYY78hP4VIICyWsX8qbc4Q+6q35yocEgmYkozyW
o66PDc6+3G6r9ZMuc8UIshzaUG6jkSwJkg6M9xzP6aCkcEjdNVW95jHodk7p8N9Y
Gn+6IU+jRdOMhif6sEwTuVMq
-----END PRIVATE KEY-----

📌 Sao chép toàn bộ nội dung CSR để dán vào pfSense.

📌 2️⃣ Đăng nhập pfSense và mở phần quản lý chứng chỉ

  • Vào System > Certificates > Certificates
  • Nhấn Edit hoặc Add để tạo chứng chỉ mới
  • Ở mục Method, chọn Sign a Certificate Signing Request

📌 3️⃣ Điền thông tin để ký CSR

  • Descriptive Name → Đặt tên mô tả, ví dụ: docs.hoanghd.com
  • CA to sign with → Chọn Wiki CA (hoặc CA mà bạn đã tạo)
  • CSR to sign → Chọn New CSR (Paste below)
  • CSR data → Dán nội dung của file docs.hoanghd.com.csr
  • Key data → Có thể để trống (không bắt buộc)
  • Certificate Lifetime → Chỉnh số ngày chứng chỉ có hiệu lực (mặc định 3650 ngày = 10 năm)
  • Digest Algorithm → Chọn sha256
  • Certificate Type → Chọn User Certificate hoặc Server Certificate tùy nhu cầu
  • Alternative Names → Thêm các tên miền khác nếu cần

📌 4️⃣ Lưu và sử dụng chứng chỉ

Nhấn Save

Sau khi chứng chỉ được ký, bạn có thể export chứng chỉ và sử dụng nó trên server hoặc các dịch vụ khác.ữ

3.4. Import an existing Certificate.

Mình có sẵn chứng chỉ Let’s Encrypt cho wiki.hoanghd.com và muốn import vào pfSense.

📌 1️⃣ Chuẩn bị các tệp chứng chỉ

Bạn cần các tệp sau từ Let’s Encrypt:

TệpMô tả
fullchain.pemChứng chỉ chính + Intermediate CA
privkey.pemPrivate key (Private Key)

📌 Nếu bạn đang dùng Certbot, các tệp này thường nằm ở:

/etc/letsencrypt/live/wiki.hoanghd.com/fullchain.pem
/etc/letsencrypt/live/wiki.hoanghd.com/privkey.pem

📌 2️⃣ Mở pfSense và nhập chứng chỉ

Vào pfSenseSystem > Certificates > Certificates. Nhấn “Add” để thêm chứng chỉ mới.

Chọn “Import an existing Certificate”

  • Điền thông tin:
    • Descriptive Name: Import SSL wiki.hoanghd.com
    • Certificate Data:
      • 📌 Mở file fullchain.pem và sao chép nội dung vào đâybashCopyEditcat /etc/letsencrypt/live/wiki.hoanghd.com/fullchain.pem
    • Private Key Data:
      • 📌 Mở file privkey.pem và sao chép nội dung vào đâybashCopyEditcat /etc/letsencrypt/live/wiki.hoanghd.com/privkey.pem

Nhấn Save để lưu lại

Sau khi import, kiểm tra xem chứng chỉ đã hiển thị đúng hạn sử dụng chưa.

📌 3️⃣ Kiểm tra & Áp dụng chứng chỉ

  • Nếu bạn muốn sử dụng chứng chỉ này cho GUI Web pfSense vào:
    System > Advanced > Admin Access > HTTPS Certificate
    → Chọn wiki.hoanghd.com
    Lưu lại & Apply Changes

4. Kết luận

Quản lý chứng chỉ là một phần quan trọng trong bảo mật hệ thống. Hiểu rõ các bước tạo, nhập, ký và xuất chứng chỉ sẽ giúp đảm bảo an toàn cho các dịch vụ và dữ liệu. Bằng cách sử dụng GUI của hệ thống, quy trình này trở nên đơn giản và hiệu quả hơn.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories