準備建立專用憑證
您可以透過設定私人憑證引擎,啟用 IBM Cloud® Secrets Manager 服務實例以產生私人憑證。
在 Secrets Manager中,專用憑證引擎充當 private_cert 密鑰類型的後端。 私人憑證是 SSL / TLS 憑證,您可以在服務中簽署、簽發和管理這些憑證。 您必須先透過建立 憑證管理中心(CA)受信任的第三方組織或公司,負責發出數位憑證。 憑證管理中心通常會驗證被授與唯一憑證之個人的身分。
及憑證的有效信任鏈來啟用服務實例,然後才能建立專用憑證。
瞭解憑證階層
有了 Secrets Manager,您就可以建立自己的公鑰基礎架構 (PKI) 系統,方法是建立可以簽署和簽發 SSL / TLS 證書給您的應用程式的憑證授權機構 (CA)。 有了證書鏈,您就可以使用 Secrets Manager 實例為用戶端和伺服器應用程式建立 私人證書。
有效的憑證鏈從可信賴的根憑證機構開始,經過一個或多個下屬憑證機構,最後以簽發給您的終端實體應用程式的葉憑證結束。 例如,移出下列簡式 CA 階層:
-
主要 CA 充當整個憑證鏈的信任錨點。
-
第 2 級的下屬憑證機構由根憑證機構簽署和簽發。 這些下屬憑證授權機構簽署其他下屬憑證授權機構的憑證。
-
最後,層次 3 中的子層 CA 憑證會簽署並向您的終端實體應用程式發出葉節點憑證。
在 Secrets Manager中,葉節點憑證是您建立並部署至應用程式的 專用憑證。
設計 CA 階層
使用 Secrets Manager,您可以在服務實例中建立多達 10 個根憑證授權單位和 10 個中間憑證授權單位,這些憑證授權單位包含多個分支和層級。
| 權限類型 | 說明 |
|---|---|
| 根憑證管理中心 | 憑證鏈的信任錨點。 在憑證階層中,主要 CA 位於憑證鏈的頂端。 此憑證機構用於簽署下屬憑證機構的憑證,例如中繼憑證機構。 |
| 中介憑證管理中心 | 簽署並發出其他中繼 CA 憑證的子層或低階憑證管理中心。 中間 CA 也用來向終端實體 (例如用戶端或伺服器應用程式) 發出葉節點憑證。 在 Secrets Manager 中,您可以建立 內部或外部簽署 的中間憑證授權。 |
規劃 CA 階層的結構
最佳作法是規劃與組織結構對應的憑證管理中心階層。 通常,您可以實作下列其中一個一般 CA 結構。
兩個層次: 主要 CA 和子層 CA
如果您的工作量需要最簡單的 CA 結構,請使用此選項。 在此實務範例中,您建立單一授信主要 CA。 然後,您可以建立子層 CA (例如 中繼 CA),以將葉節點憑證發出至應用程式及服務。
三個層級:根憑證機構和兩個下屬憑證機構
如果您的工作量需要主要 CA 與低階 CA 作業之間的額外層,請使用此選項。 在這種情況下,中間的下屬 CA 僅用於簽署向您的應用程式簽發葉證書的下屬憑證機構。
設定 CA 階層的深度
當您在 Secrets Manager中建立憑證管理中心時,您可以設定 路徑長度上限 參數,以決定其憑證管理中心鏈中可以存在多少 CA 憑證。 此值會強制在 CA 的憑證路徑中可以存在多少 CA 憑證。
一般而言,您可以設定一個根憑證機構,該憑證機構不會限制它在憑證路徑中可以建立的下屬憑證機構的數量。 不過,定義從屬憑證授權機構的最大路徑長度是避免錯誤設定憑證授權機構的重要安全步驟。 視子層 CA 在階層中的位置而定,請務必指定路徑長度上限,以便其簽署權限的權限僅限於預期的深度。
您定義的路徑長度上限不包括葉節點憑證。 在前一個範例中,層次 4 中的子層 CA 可以發出葉節點憑證,但無法在其路徑中具有更多 CA 憑證。
選擇憑證的有效期限
X.509 憑證的有效期間是必要欄位,可判定憑證授信並保持有效的時間長度。 當您規劃 CA 階層時,請針對您要發給應用程式的葉節點憑證,從偏好的有效期限往回工作。 然後,決定 CA 憑證的有效期間。
憑證的有效期間必須小於或等於發出憑證之 CA 的有效期間。 例如,如果您建立一個生存時間 (TTL) 為 10 年的根憑證機構,則從屬於它的任何中繼憑證機構的 TTL 必須等於或小於 10 年。 同樣地,如果中間 CA 的 TTL 為 3 年,則任何葉節點憑證都必須具有等於或小於 3 年的 TTL。
-
選擇適合您使用案例的葉節點憑證有效期限。
您可以使用 Secrets Manager 建立的專用憑證被視為可以發出至終端實體 (例如用戶端或伺服器應用程式) 的葉節點憑證。 使用 Secrets Manager,您可以建立有效期上限為三年或 36 個月的憑證。 判定葉節點憑證的 TTL 或有效期間之後,您可以使用 憑證範本 來設定值,以便每次產生新的葉節點憑證時都套用您偏好的 TTL。
葉節點憑證的 TTL 越短,您就會受到越多的保護,以免不慎暴露憑證及其私密金鑰。 憑證的有效期越短表示您減少受損的可能性,但也需要您更頻繁地輪替憑證,以確保它保持有效。 為了避免無意中斷,您可以排定專用憑證的 自動輪換。
-
選擇子層 CA 的有效期間。
最佳作法是設定子層 CA 憑證的有效期限,使其明顯長於所發出的憑證的有效期限。 定義母項 CA 的有效期間,其為其發出的任何子項 CA 憑證或葉節點憑證的兩倍至五倍。 例如,如果您具有 兩層 CA 階層,並且想要發出 TTL 為一年的葉節點憑證,請配置子層發出 CA,TTL 為三年。 您一律可以更新子層 CA 憑證,而不取代主要 CA 憑證。
-
選擇主要 CA 的有效期間。
當您更新主要 CA 憑證時,變更會影響整個公開金鑰基礎架構。 為了將影響降到最低,建議您為主要 CA 憑證設定較長的有效期限。 在 Secrets Manager中,主要憑證的預設 TTL 為 10 年。
選擇鑰匙管理服務
在創建證書頒發機構之前Secrets Manager,您必須選擇金鑰管理服務 (KMS) 來為您的 CA 產生公鑰和私鑰。 您可以選擇私有憑證引擎內部 KMS,在這種情況下,CA 公鑰和私鑰在軟體中建立並由服務內部管理。 您也可以選擇在外部硬體安全模組 (HSM) 中管理金鑰。Secrets Manager支援IBM Cloud Hyper Protect Crypto Services (HPCS) 用於管理 CA 金鑰。 您可以將 CA 設定為使用 HPCS 私鑰庫中的現有金鑰,或允許Secrets Manager為 CA 建立新金鑰。
這Secrets Manager私有憑證引擎正在使用PKCS#11與 HPCS 通訊的 API。 身份驗證和授權是使用 IAM API 金鑰完成的,該金鑰通過Secrets ManagerIAM 憑證保密。 加密簽章操作在 HPCS 中執行,CA 私鑰材料永遠不會離開加密裝置。
注意:Secrets Manager 不控制與在 HPCS 中使用金鑰建立 CA 憑證相關的費用或費率限制。
準備好使用 HPCS 中的金鑰建立 CA
您的帳戶中應該配置有一個 HPCS 實例。 在您的 HPCS 實例中建立一個用於 CA 金鑰的私有金鑰庫。
依照 HPCS 文件中的說明設定 PKCS #11 普通使用者類型。
-
建立自訂 IAM 角色
-
建立 IAM 服務 ID
注意:請勿為服務 ID 建立 API 金鑰。 API 金鑰將由 Secrets Manager
-
將 IAM 角色指派給服務 ID
- 將自訂角色指派給服務 ID
- 將檢視者角色指派給 HPCS 執行個體的服務 ID。
在你的Secrets Manager實例:
- 配置 IAM 憑證引擎
- 建立新的 IAM 憑證金鑰並配置以下內容:
- 設定
Lease duration - 啟用
Reuse IAM credentials until lease expires - 啟用
Automatic secret rotation - 指派對透過 HPCS 進行驗證而建立的服務 ID 的存取權限
- 設定
選擇用於產生金鑰的演算法
在 Secrets Manager中建立憑證管理中心之前,您必須選擇金鑰演算法來產生 CA 的公開和私密金鑰。 公開和私人金鑰對用於驗證 SSL / TLS 連線。 如果您不確定從何處開始,則可以使用下列建議手冊來選取金鑰演算法。
-
選擇演算法系列。
您選取的金鑰演算法會決定用來產生金鑰及簽署憑證的加密演算法及金鑰大小。 最佳作法是對屬於憑證鏈的所有憑證使用相同的演算法系列。Secrets Manager 支援下列演算法系列。
支援的演算法系列和密鑰大小 演算法系列 說明 支援的金鑰大小 RSA RSA 廣泛使用並與大部分瀏覽器和伺服器相容,是公開金鑰加密法的業界標準。 2048 位元
4096 位元橢圓曲線 (EC) 產生更強大的金鑰和較小的憑證。 例如,256 位元 EC 金鑰的加密強度相當於 3072 位元 RSA 金鑰。 224 位元
256 位元
384 位元
521 位元 -
選擇金鑰大小。
您選取的金鑰大小或長度會決定加密強度。 演算法系列的金鑰大小越大,越難以突破。 請記住,較長的金鑰長度會導致儲存及傳輸更多資料,這可能會影響憑證的效能。 最佳作法是選擇適用於憑證 TTL 或有效期間的金鑰大小。
對於較長的存活憑證,建議使用較長的金鑰長度來提供更多加密保護。
使用憑證管理中心未經鑑別的端點
如果您針對應用程式使用由 CA 在 Secrets Manager 中發出的葉節點憑證,請使用下列 API 呼叫來取得發出「CA 憑證撤銷清冊 (CRL)」及 CA 憑證的存取權。
讀取憑證撤銷清冊
使用此端點,您可以擷取原始 DER 編碼形式的目前 CRL。 如果 /pem 已加入端點,則 CRL 會以 PEM 格式傳回。
GET v1/ibmcloud/private_cert/config/certificate_authorities/:ca-name/crl(/pem)
Response 200 OK
<binary DER-encoded CRL>
若要驗證葉節點或中繼 CA 憑證未從葉節點憑證的環境定義中撤銷,您可以使用內容 "crl_distribution_points_encoded": true 來配置 CA。 此設定將用於下載簽發 CA CRL 的 URL 編碼在每張葉憑證或中間 CA 憑證的 X509v3 CRL Distribution Points 等屬性中。 然後,CA 驗證器可以檢查葉節點或中繼 CA 憑證是否已撤銷。
讀取 CA 憑證
使用此端點,您可以擷取原始 DER 編碼形式的 CA 憑證。 如果 /pem 已加入端點,則 CA 證書會以 PEM 格式傳回。
GET v1/ibmcloud/private_cert/config/certificate_authorities/:ca-name/ca(/pem)
Response 200 OK
<binary DER-encoded certificate >
讀取 CA 憑證鏈
您可以使用此端點擷取 CA 證書鏈,其中包括 PEM 格式的 CA。 此端點為裸機。 它不會傳回標準 Vault 資料結構,且 Vault CLI 無法讀取它。
GET v1/ibmcloud/private_cert/config/certificate_authorities/:ca-name/ca_chain
Response 200 OK
<PEM-encoded certificate chain>
要驗證 CA 鏈是否來自葉憑證的上下文,您可以在 Secrets Manager 中使用屬性 "issuing_certificates_urls_encoded": true 來設定您的憑證授權機構。 在每個樹葉或中間 CA 憑證中,此設定會在屬性 Authority Information Access/CA Issuers 中編碼用於下載簽發 CA 憑證的 URL。 然後,您的 CA 驗證器可以驗證每一個
CA 憑證。
下一步
現在您已準備好為實例建立憑證管理中心。