Azure密钥库:合并证书

2024-09-28 05:22:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试理解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的证书链


Tags: thekeyhttpscomapidocs密钥certificate
1条回答
网友
1楼 · 发布于 2024-09-28 05:22:25

是的,合并链意味着整个链,从为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测试kv和名为的证书测试

  2. 使用中间CA对请求进行签名

openssl x509 -CA inter.crt -CAkey inter.key -days 365 -req -in test.csr -set_serial 03 -out test.crt
  1. 将证书与中间文件和CA-to-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文件中

相关问题 更多 >

    热门问题