簡體   English   中英

Azure 密鑰保管庫:合並證書

[英]Azure key vault: Merge certificate

我試圖了解 Azure Key Vault 的合並 API。 它的用例是什么? https://docs.microsoft.com/en-us/rest/api/keyvault/mergecertificate/mergecertificate

醫生說

The MergeCertificate operation performs the merging of a certificate or certificate chain with a key pair currently available in the service. 

我在這里了解的一個用例是在密鑰庫中創建 CSR,由您的 CA 對其進行簽名,然后將其合並到密鑰庫中的 CSR 以完成證書創建。

但是合並證書鏈是什么意思? 這是否意味着用於簽署 CSR 的證書鏈?

是的,合並鏈意味着整個鏈,從為 CSR 生成的證書開始。

因此,使用 OpenSSL 1.1.1 進行本地測試

  1. 生成 CA
openssl req -new -newkey rsa:2048 -nodes -out ca.csr -keyout ca.key -extensions v3_ca
openssl x509 -signkey ca.key -days 365 -req -in ca.csr -set_serial 01 -out ca.crt
  1. 生成中間 CA
openssl req -new -newkey rsa:2048 -nodes -out inter.csr -keyout inter.key -addext basicConstraints=CA:TRUE
openssl x509 -CA ca.crt -CAkey ca.key -days 365 -req -in inter.csr -set_serial 02 -out inter.crt
  1. 使用 Azure KeyVault 生成請求並將 CSR 下載到 test.csr 文件。 假設使用 keyvault test-kv和名稱為test的證書。

  2. 使用中間 CA 簽署請求

openssl x509 -CA inter.crt -CAkey inter.key -days 365 -req -in test.csr -set_serial 03 -out test.crt
  1. 將證書與中間證書和 CA 捆綁到 PEM 格式(只需按正確順序連接這些文本文件)
cat test.crt inter.crt ca.crt > test-chain.pem
  1. 合並 Azure KeyVault 中的證書鏈
az keyvault certificate  pending merge --vault-name test-kv --name test --file test-chain.pem

關於格式的附加說明:
在 Azure KeyVault 中創建證書內容類型時,可以將其設置為 PKCS12 或 PEM。 結果合並證書被導出/下載

  • 對使用 PKCS12 內容類型創建的證書使用 PFX 格式
  • 對使用 PEM 內容類型創建的證書使用 PEM 格式

但是,用於合並的鏈束的格式不依賴於該內容類型。 它僅取決於用於執行合並的方法:

以下命令可用於創建包含鏈的 P7B 文件:

openssl crl2pkcs7 -nocrl -certfile test.crt -out test.p7b -certfile inter.crt -certfile ca.crt

當與鏈合並在一起的證書在 PEM 中下載時,它已經包含整個鏈。 在 PFX 中下載證書時,要提取單個證書,可以使用以下命令轉換為 PEM,僅包含證書(省略私鑰):

openssl pkcs12 -in downloaded-cert.pfx -nokeys -nodes -out chain.pem

然后可以使用文本編輯器打開chain.pem,並且可以將單個證書提取到單獨的crt文件中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM