SSL证书-在Azure KeyVault中导入根和链?

SSL证书-在Azure KeyVault中导入根和链?,azure,digital-certificate,azure-keyvault,Azure,Digital Certificate,Azure Keyvault,我已使用命令“mport-AzureKeyVaultCertificate-VaultName$VaultName-Name$certificateName-FilePath”成功地在我的Azure KeyVault中导入了数字签名证书(附带根证书和链证书)。该证书已由公共证书颁发机构颁发给我 我试图运行完全相同的命令来导入根证书和链证书,但无法导入 我的问题是:是否有办法将根证书和中间证书导入到KeyVault中?还是需要从其他地方进口 谢谢将您的证书、CA捆绑文件和私钥文件按以下顺序连接到.

我已使用命令“mport-AzureKeyVaultCertificate-VaultName$VaultName-Name$certificateName-FilePath”成功地在我的Azure KeyVault中导入了数字签名证书(附带根证书和链证书)。该证书已由公共证书颁发机构颁发给我

我试图运行完全相同的命令来导入根证书和链证书,但无法导入

我的问题是:是否有办法将根证书和中间证书导入到KeyVault中?还是需要从其他地方进口


谢谢

将您的证书、CA捆绑文件和私钥文件按以下顺序连接到
.pem
文件中:

cat.crt.cabundle.key>.pem

使用
az
工具导入密钥库,方法是:

az keyvault证书导入--vault名称--名称--file.pem


您会发现
az
工具在vault中创建了三个条目,所有条目的名称均为
(i)包含
.crt
文件的证书,(ii)私钥和(iii)包含完整根+链+私钥的秘密,您可以稍后下载。

有两种基本情况:

  • 进口颁发的证书(PEM或PFX格式)-请参阅
  • 使用Azure KeyVault创建CSR(证书请求),将其发送给颁发者并合并收到的证书-请参阅
  • 两者都允许将证书链添加到keyvault(与证书一起),然后下载和提取。请注意,无法单独从keyvault打开/下载链证书。相反,应该下载证书并从文件中提取证书

    导入操作非常简单:Azure Portal和Az CLI都支持PFX和PEM文件,其中包含私钥、由颁发者创建的新证书和CA证书

    但合并也有一些细微差别。
    在Azure KeyVault中创建时,可以将证书内容类型设置为PKCS12或PEM。因此,将导出/下载合并的证书

    • 对使用PKCS12内容类型创建的证书使用PFX格式
    • 对使用PEM内容类型创建的证书使用PEM格式
    但是,用于合并操作的链容器的格式不依赖于该内容类型。它仅取决于用于执行合并的方法:

    • Az CLI支持PEM格式(具有单个证书或整个链)和crt(仅包含一个证书,不包含链)
      az keyvault certificate pending merge --vault-name test-kv --name test --file test- 
      chain.pem
      
    • Azure门户UI允许上传PEM、P7B和crt。但是只有合并P7B才允许保留链。在合并PEM的情况下,仅使用PEM容器中指定的第一个证书(忽略其他证书)
    • Azure KeyVault REST api使用base64编码的证书数组来表示链()
    以下命令可用于创建包含链的P7B文件:

    openssl crl2pkcs7 -nocrl -certfile test.crt -out test.p7b -certfile inter.crt -certfile ca.crt
    
    从导入的证书中提取链:
    将证书导入Azure keyvault时,将使用相同的格式导出/下载该证书

    从合并证书中提取链:
    应从Azure keyvault下载证书(PFX或PEM,具体取决于证书内容类型)。当在PEM中下载与链合并在一起的证书时,它包含整个链,其格式已允许轻松提取单个证书。
    在PFX中下载证书时,要提取单个证书,可使用以下命令将其转换为PEM格式,仅包含证书(忽略私钥):

    然后,可以使用文本编辑器打开chain.pem,并将各个证书提取到单独的crt文件中

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