SSL 证书 - 在 Azure KeyVault 中导入根和链?
SSL Certificates - Import Root and Chain in Azure KeyVault?
我已使用命令 "mport-AzureKeyVaultCertificate -VaultName $vaultName -Name $certificateName -FilePath" 在我的 Azure KeyVault 中成功导入了数字签名证书(附带根证书和链证书)。该证书是由 public 证书颁发机构颁发给我的。
我尝试运行完全相同的命令来导入根证书和链证书,但我做不到。
我的问题是:有没有办法将根证书和中间证书导入 KeyVault?或者他们需要从其他地方进口?
谢谢
将您的证书、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
。
有两种基本情况:
- 导入颁发的证书(采用 PEM 或 PFX 格式)- 请参阅 Tutorial: Import a certificate in Azure Key Vault
- 使用 Azure KeyVault 创建 CSR(证书请求),将其发送给颁发者并合并收到的证书 - 请参阅Create and merge a CSR in Key Vault
它们都允许将证书链添加到密钥库(与证书一起),然后再下载和提取。请注意,无法 open/download 将证书与密钥库分开链接。相反,应该下载证书并从文件中提取证书。
导入操作非常简单:Azure 门户和 Az CLI 都支持 PFX 和 PEM 文件,包含私钥、颁发者创建的新证书和 CA 证书。
但是合并有一些细微差别。
在 Azure KeyVault 中创建时,证书内容类型可以设置为 PKCS12 或 PEM。结果合并后的证书是 exported/downloaded
- 对使用 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 编码的证书来表示链 (https://docs.microsoft.com/en-us/azure/key-vault/certificates/create-certificate-scenarios#merge-when-a-pending-request-is-created---manual-certificate-creation)
以下命令可用于创建包含链的 P7B 文件:
openssl crl2pkcs7 -nocrl -certfile test.crt -out test.p7b -certfile inter.crt -certfile ca.crt
正在从导入的证书中提取链:
将证书导入 Azure keyvault 时,export/download 该证书使用相同的格式。
从合并的证书中提取链:
应从 Azure keyvault(PFX 或 PEM,具体取决于证书内容类型)下载证书。当在 PEM 中下载与链合并的证书时,它包含整个链,其格式已经允许轻松提取单个证书。
在 PFX 中下载证书时,要提取单个证书,可以使用以下命令将其转换为 PEM 格式,仅包含证书(省略私钥):
openssl pkcs12 -in downloaded-cert.pfx -nokeys -nodes -out chain.pem
然后chain.pem可以用文本编辑器打开,提取单个证书到单独的crt文件。
我已使用命令 "mport-AzureKeyVaultCertificate -VaultName $vaultName -Name $certificateName -FilePath" 在我的 Azure KeyVault 中成功导入了数字签名证书(附带根证书和链证书)。该证书是由 public 证书颁发机构颁发给我的。
我尝试运行完全相同的命令来导入根证书和链证书,但我做不到。
我的问题是:有没有办法将根证书和中间证书导入 KeyVault?或者他们需要从其他地方进口?
谢谢
将您的证书、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
。
有两种基本情况:
- 导入颁发的证书(采用 PEM 或 PFX 格式)- 请参阅 Tutorial: Import a certificate in Azure Key Vault
- 使用 Azure KeyVault 创建 CSR(证书请求),将其发送给颁发者并合并收到的证书 - 请参阅Create and merge a CSR in Key Vault
它们都允许将证书链添加到密钥库(与证书一起),然后再下载和提取。请注意,无法 open/download 将证书与密钥库分开链接。相反,应该下载证书并从文件中提取证书。
导入操作非常简单:Azure 门户和 Az CLI 都支持 PFX 和 PEM 文件,包含私钥、颁发者创建的新证书和 CA 证书。
但是合并有一些细微差别。
在 Azure KeyVault 中创建时,证书内容类型可以设置为 PKCS12 或 PEM。结果合并后的证书是 exported/downloaded
- 对使用 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 编码的证书来表示链 (https://docs.microsoft.com/en-us/azure/key-vault/certificates/create-certificate-scenarios#merge-when-a-pending-request-is-created---manual-certificate-creation)
以下命令可用于创建包含链的 P7B 文件:
openssl crl2pkcs7 -nocrl -certfile test.crt -out test.p7b -certfile inter.crt -certfile ca.crt
正在从导入的证书中提取链:
将证书导入 Azure keyvault 时,export/download 该证书使用相同的格式。
从合并的证书中提取链:
应从 Azure keyvault(PFX 或 PEM,具体取决于证书内容类型)下载证书。当在 PEM 中下载与链合并的证书时,它包含整个链,其格式已经允许轻松提取单个证书。
在 PFX 中下载证书时,要提取单个证书,可以使用以下命令将其转换为 PEM 格式,仅包含证书(省略私钥):
openssl pkcs12 -in downloaded-cert.pfx -nokeys -nodes -out chain.pem
然后chain.pem可以用文本编辑器打开,提取单个证书到单独的crt文件。