建立 SSL / TLS 私人憑證
您可以使用 IBM Cloud® Secrets Manager 儲存、申請和產生私人 SSL / TLS 憑證,以便用於您的應用程式或服務。
SSL / TLS 憑證是一種數位憑證,用於建立伺服器與用戶端之間的通訊隱私。 憑證由 憑證管理中心(CA)受信任的第三方組織或公司,負責發出數位憑證。 憑證管理中心通常會驗證被授與唯一憑證之個人的身分。 發出,並包含用來在端點之間建立信任及安全連線的資訊。 將憑證加到 Secrets Manager 範例後,您就可以使用它來保護雲端或內部部署的網路通訊。 您的憑證會安全地儲存在您專屬的 Secrets Manager 服務實例中,您可以集中管理其生命週期。
在 Secrets Manager 中,使用私人憑證授權機構建立的憑證是私人憑證 (private_cert)。您匯入服務的憑證為 匯入憑證 (imported_cert)。您透過 Secrets Manager 向第三方憑證授權機構訂購的憑證是 公開憑證 (public_cert)。
開始之前
開始之前,請確定您具有必要的存取層次。 若要建立或新增密鑰,您需要 撰寫者 服務角色或更高版本。
在建立專用憑證之前,請確定您:
- 準備實例以建立憑證。
- 檢閱可用的中繼憑證管理中心。 若要檢視為實例定義的配置,請跳至 Secrets Manager 使用者介面中的 密鑰引擎> 專用憑證 頁面。
- 檢閱可用於所選中間 CA 的 憑證範本。
當您建立專用憑證時,需要選取範本。 視您選擇的範本而定,可能會套用專用憑證的部分限制。 若要檢視針對中繼 CA 定義的範本,請跳至 Secrets Manager 使用者介面中的 密鑰引擎> 專用憑證 頁面。 展開您要用作專用憑證發行管理中心的中間 CA 列,然後按一下 範本 以檢閱可用的範本。
建立專用憑證
在 配置實例的專用憑證引擎 之後,您可以使用 Secrets Manager,使用先前為 Secrets Manager 服務實例配置的內部憑證管理中心來產生專用憑證。 在可以向您發出憑證之前,Secrets Manager 會檢查以確保您的憑證申請符合為您選取的 憑證範本 定義的限制。 發出憑證之後,您可以將它部署至整合應用程式、下載它、撤銷它或手動輪替它。
在使用者介面中建立專用憑證
您可以使用 Secrets Manager 使用者介面來建立專用憑證。
- 在主控台中,按一下 功能表 圖示
> 資源清單。
- 從服務清單中,選取 Secrets Manager的實例。
- 在 密鑰 表格中,按一下 新增。
- 按一下 建立專用憑證 磚。
- 按下一步。
- 新增名稱及說明,以輕鬆識別您的憑證。
- 選用項目: 新增標籤以協助您在實例中搜尋類似的密鑰。
- 選用項目: 將 meta 資料新增至密鑰或密鑰的特定版本。
- 上傳檔案或以 JSON 格式輸入 meta 資料及版本 meta 資料。
- 按下一步。
- 選擇證書授權配置。
您選取的配置會決定用於簽署及發出憑證的憑證管理中心。 若要檢視為實例定義的配置,您可以跳至 密鑰引擎> 專用憑證。
- 選取 憑證範本。
您選取的範本會決定要套用至所產生憑證的參數。 若要檢視為所選憑證管理中心定義之憑證範本的詳細資料,您可以跳至 密鑰引擎> 專用憑證。 從憑證管理中心清單中,展開您要用作專用憑證發行管理中心之 CA 的列,然後按一下 範本。 12. 選用項目: 啟用憑證的自動旋轉。
若要啟用自動旋轉,請將旋轉開關切換至 開啟。 選取間隔及單位,以指定排定輪替之間的天數。
視您在下列步驟中選擇的憑證範本而定,可能會套用對專用憑證循環間隔的部分限制。 例如,旋轉間隔不能超過範本中定義的存活時間 (TTL)。 如需相關資訊,請參閱 憑證範本。
- 必要: 指定憑證的通用名稱。
根據您選擇的憑證範本,可能會對公用名稱有一些限制。 若要檢視所選取憑證範本的詳細資料,您可以跳至 密鑰引擎> 專用憑證。 從憑證管理中心清單中,展開您要用作專用憑證發行管理中心之 CA 的列,然後按一下 範本。 14. 選取您要指派給憑證的 密鑰群組實例中包含密鑰的環境及限制必須遵循。 使用者可以與秘密群組相關聯,以實現存取和協作。 。
如果您選取的憑證範本容許將憑證新增至特定密鑰群組,則只會列出那些容許的群組。 如果範本沒有限制,則可以建立密鑰群組 (如果您還沒有密鑰群組的話)。 您的憑證會自動新增至新群組。 如需密鑰群組的相關資訊,請參閱 組織密鑰。 15. 選用: 指定憑證的替代名稱。
替代名稱可以是主機名稱或電子郵件地址。 16. 按下一步。 17. 檢閱憑證的詳細資料。 18. 按一下新增。
從 CLI 建立專用憑證
在開始之前,請按照 CLI 文件 設定您的 API 端點。
若要使用 Secrets Manager CLI 外掛程式建立專用憑證,請執行 ibmcloud secrets-manager secret-create 指令。 例如,下列指令會從您指定的憑證範本建立專用憑證密碼。
當您訂購憑證時,會進行網域驗證,以驗證所選取網域的所有權。 此處理程序可能需要幾分鐘的時間才能完成。
ibmcloud secrets-manager secret-create \
--secret-name example-private-certificate \
--secret-description "Extended description for this secret." \
--secret-type private_cert \
--secret-group-id bc656587-8fda-4d05-9ad8-b1de1ec7e712 \
--secret-labels dev,us-south \
--private-cert-template-name example-certificate-template \
--certificate-common-name cert_common_name \
--secret-rotation '{"enabled": false, "rotate_keys": false}' \
--secret-custom-metadata '{"anyKey": "anyValue"}' \
--secret-version-custom-metadata '{"anyKey": "anyValue"}' \
--secret-expiration-date 2030-01-01T00:00:00Z
指令會輸出密鑰的 ID 值,以及其他 meta 資料。 如需指令選項的相關資訊,請參閱 ibmcloud secrets-manager secret-create。
使用 API 建立專用憑證
您可以透過呼叫 Secrets Manager API,以程式化方式產生專用憑證。
下列範例顯示可用來建立專用憑證的查詢。 當您呼叫 API 時,請將 ID 變數及 IAM 記號取代為 Secrets Manager 實例特定的值。
您可以使用 custom_metadata 和 version_custom_metadata 要求參數來儲存與組織需求相關的 meta 資料。 僅針對密鑰版本傳回 version_custom_metadata 的值。 密鑰的自訂 meta 資料會儲存為最多 50 個版本的所有其他 meta 資料,而且您不得包含機密資料。
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "example-private-certificate",
"description": "Description of my private certificate",
"secret_type": "private_cert",
"secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
"labels": [
"dev",
"us-south"
],
"certificate_template": "test-certificate-template",
"common_name": "localhost",
"alt_names": [
"alt-name-1",
"alt-name-2"
],
"ip_sans": "127.0.0.1",
"uri_sans": "https://www.example.com/test",
"ttl": "2190h",
"rotation": {
"auto_rotate": true,
"interval": 1,
"unit": "month"
},
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}' \ "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"
需要建立具有進階選項的專用憑證嗎? 您可以使用選用要求參數來指定專用憑證的進階屬性,例如「主體替代名稱」或存活時間 (TTL)。 如果您省略這些選用參數,則會套用為所選憑證範本定義的屬性。 如需相關資訊,請參閱 API 參考資料。
成功的要求會傳回專用憑證的內容,以及由憑證範本及發出憑證管理中心所決定的其他 meta 資料。
{
"alt_names": [
"s1.example.com",
"*.s2.example.com"
],
"certificate_authority": "test-intermediate-CA",
"certificate_template": "test-certificate-template",
"common_name": "example.com",
"created_at": "2022-10-02T14:08:07Z",
"created_by": "iam-ServiceId-e4a2f0a4-3c76-4bef-b1f2-fbeae11c0f21",
"crn": "crn:v1:bluemix:public:secrets-manager:us-south:a/a5ebf2570dcaedf18d7ed78e216c263a:f1bc94a6-64aa-4c55-b00f-f6cd70e4b2ce:secret:cb7a2502-8ede-47d6-b5b6-1b7af6b6f563",
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"description": "Extended description for this secret.",
"downloaded": true,
"expiration_date": "2023-03-02T15:08:37Z",
"id": "cb7a2502-8ede-47d6-b5b6-1b7af6b6f563",
"issuer": "example.com",
"key_algorithm": "RSA2048",
"labels": [
"dev",
"us-south"
],
"locks_total": 0,
"name": "example-private-certificate",
"next_rotation_date": "2022-03-02T14:08:07Z",
"rotation": {
"auto_rotate": false,
"interval": 1,
"unit": "month"
},
"secret_data": {
"certificate": "-----BEGIN CERTIFICATE-----\nMIIE3jCCBGSgAwIBAgIUZfTbf3adn87l5J2Q2Aw+6Vk/qhowCgYIKoZIzj0EAwIw\n-----END CERTIFICATE-----",
"issuing_ca": "-----BEGIN CERTIFICATE-----\nMIIE3jCCBGSgAwIBAgIUZfTbf3adn87l5J2Q2Aw+6Vk/qhowCgYIKoZIzj0EAwIw\n-----END CERTIFICATE-----",
"ca_chain": [
"-----BEGIN CERTIFICATE-----\nMIIE3jCCBGSgAwIBAgIUZfTbf3adn87l5J2Q2Aw+6Vk/qhowCgYIKoZIzj0EAwIw\n-----END CERTIFICATE-----"
],
"private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAqcRbzV1wp0nVrPtEpMtnWMO6Js1q3rhREZluKZfu0Q8SY4H3\n-----END RSA PRIVATE KEY-----"
},
"secret_group_id": "bc656587-8fda-4d05-9ad8-b1de1ec7e712",
"secret_type": "private_cert",
"serial_number": "03:e2:c6:e4:0b:7d:30:e2:e2:78:1b:b9:13:fd:f0:fc:89:dd",
"signing_algorithm": "SHA256-RSA",
"state": 1,
"state_description": "active",
"updated_at": "2022-03-02T14:08:37Z",
"validity": {
"not_before": "2022-03-02T15:08:37Z",
"not_after": "2023-03-01T00:00:00Z"
},
"versions_total": 1
}
使用 Terraform 建立專用憑證
下列範例顯示可用來建立專用憑證的配置。
resource "ibm_sm_private_certificate" "test_private_certificate" {
instance_id = local.instance_id
region = local.region
name = "test-private-certificate"
common_name = "my.example.com"
certificate_template = ibm_sm_private_certificate_configuration_template.test_ca_template.name
ttl = "90d"
}
發出憑證之後,您可以將它部署至整合應用程式、下載它,或手動輪換它。 如需必要及選用要求參數的相關資訊,請參閱 API 參考資料。
若要自動化私人憑證的建立與管理,請使用 Terraform IBM Modules (TIM) for Secrets Manager Private Certificate for infrastructure as code。 有關實施指引,請參閱 Terraform IBM 模組。