Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

OpenSSL 製作 X.509 憑證完整指南:根 CA、中繼 CA、應用憑證生成與關鍵參數解析

編輯:系統常見問題解答

一、快速指令備忘錄

1. 生成自簽名根 CA(RSA 1024,有效期 10 年)

openssl req -new -x509 -days 3650 -keyout CARoot1024.key -out CARoot1024.crt
openssl rsa -in CARoot1024.key -out CARoot1024.key  # 移除私鑰保護密碼

2. 生成自簽名根 CA(RSA 2048,有效期 15 年)

openssl req -newkey rsa:2048 -x509 -days 5480 -keyout CARoot2048.key -out CARoot2048.crt
openssl rsa -in CARoot2048.key -out CARoot2048.key

3. 生成應用/中繼憑證私鑰與 CSR

openssl genrsa -out app.key 2048
openssl req -new -key app.key -out app.csr

4. 根 CA 簽發應用憑證(有效期 5 年)

openssl ca -in app.csr -out app.crt -cert CARoot1024.crt -keyfile CARoot1024.key -days 1826 -policy policy_anything

5. 根 CA 簽發中繼 CA 憑證(含 v3_ca 擴展,可續發下級)

openssl ca -extensions v3_ca -in app.csr -out app.crt -cert CARoot1024.crt -keyfile CARoot1024.key -days 1826 -policy policy_anything

關鍵差異:中繼 CA 需加 -extensions v3_ca 賦予簽發下級憑證權限;應用憑證(終端實體)不加此擴展。

二、關鍵參數深度解析

1. req -new -x509 選項

  • -days N:有效天數(僅配合 -x509 生效)。
  • -keyout file:私鑰輸出檔名(若指定既有檔則覆寫)。
  • -out file:憑證輸出檔名(建議勿省略,否則輸出到 stdout)。
  • 未指定 -key 時自動生成 RSA 私鑰,長度由 openssl.cnf 決定(預設 1024)。

2. 私鑰加密密碼

互動式提示輸入 PEM pass phrase。自動化腳本可用 -passout pass:密碼,但歷史指令可見,生產環境建議用 -passout file:密碼檔 或 -passout env:變數名。

3. DN(Distinguished Name)欄位填寫指南

欄位縮寫說明建議
Country NameC國家代碼(2 字母)必填
State/ProvinceST州/省全名選填
LocalityL城市選填
OrganizationO組織/公司名建議填寫
Org UnitOU部門選填
Common NameCN通用名(網域名或實體名)必填,應用憑證填網域(支援通配符)
Email-聯絡信箱選填

使用預設值直接按 Enter;留空請輸入 . 再按 Enter。

三、生產環境建議

  • 根 CA 離線保存,私鑰加密儲存於 HSM 或離線介質。
  • 中繼 CA 負責日常簽發,定期輪換。
  • 憑證有效期遵循行業規範(如 Web SSL 建議 ≤ 398 天)。
  • 建立 CRL/OCSP 撤銷機制。
  • 使用 openssl ca -config openssl.cnf 統一管理序號、資料庫、政策。
Copyright © Windows教程網 All Rights Reserved