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

时间:2017-11-10 23:57:37

标签: azure digital-certificate azure-keyvault

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

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

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

由于

2 个答案:

答案 0 :(得分:0)

按顺序将证书,CA捆绑文件和私钥文件连接到.pem文件中:

cat <cert>.crt <bundle>.cabundle <private>.key > <full-cert>.pem

使用Azure CLI 2.0 az工具导入密钥保险库:

az keyvault certificate import --vault-name <your-vault> --name <cert-name> --file <cert-file>.pem

您应该会发现az工具在您的保管库中创建了三个条目,所有条目的名称为<cert-name>(i)包含<cert>.crt文件的证书,(ii)私钥和(iii)包含完整的根+链+私钥的秘密,如果需要,您可以稍后download

答案 1 :(得分:0)

有两种基本情况:

  1. 导入颁发的证书(采用 PEM 或 PFX 格式) - 参见 Tutorial: Import a certificate in Azure Key Vault
  2. 使用 Azure KeyVault 创建 CSR(证书请求),将其发送给颁发者并合并收到的证书 - 请参阅Create and merge a CSR in Key Vault

它们都允许将证书链添加到密钥库(与证书一起),然后下载和提取。请注意,无法与密钥库分开打开/下载链证书。相反,应下载证书并从文件中提取证书。

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

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

  • 对使用 PKCS12 内容类型创建的证书使用 PFX 格式
  • 对使用 PEM 内容类型创建的证书使用 PEM 格式

但是,用于合并操作的链容器的格式不依赖于该内容类型。它只取决于用于执行合并的方法:

以下命令可用于创建包含链的 P7B 文件:

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

从导入的证书中提取链:
将证书导入 Azure 密钥保管库时,将使用相同的格式导出/下载该证书。

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

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

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