0

我正在尝试在 C# 代码中生成 X509 证书(使用X509Certificate2类)并将它们上传到 Azure Key Vault。

我发现如果我的证书包含 flag X509KeyUsageFlags.KeyEncipherment,保险库将拒绝证书并显示以下错误消息:

不支持的键操作:“wrapKey”、“unwrapKey”。支持的值为“sign”、“verify”。

有谁知道该怎么做?当然,我可以从生成的证书中删除该标志,但我想了解 Azure 拒绝它的原因。当证书包含此标志时,是否可以将证书上传到 Azure Key Vault?

我阅读了这个文档页面,但它并没有告诉我太多:https ://docs.microsoft.com/en-us/azure/key-vault/keys/about-keys-details

(这是我之前的问题的更具体的后续行动。)

4

1 回答 1

0

• 您遇到此问题是因为与此 x509 .pem 证书一起的密钥格式不正确且未与证书组合。也就是说,您要导入的证书类型不应以 base64 编码的字节形式包含其信息。它应该是原始形式。

因此,该错误表示您尝试导入的证书密钥将用于签署和验证应用程序内容,并且使用此证书的应用程序将使用证书密钥在本地散列数据。因此,证书密钥本身不应是其他不可接受的形式。此外,如您遇到的错误所述,可能不支持密钥生成算法。

• 因此,如果您要导入 PEM(无论是 X509 证书)格式的证书,那么“contentType”应该是“application/x-pem-file”类型。value 参数将只是 PEM 文件的原始文本内容,不需要采用 base64 编码字节,因为 PEM 证书已经是文本格式,因此不需要 base64 编码。因此,证书的私钥应与证书内容加密算法的格式相同。它不需要被屏蔽或转换成另一种格式,它应该与证书本身结合起来。

请参阅以下链接以获取更多信息:-

https://docs.microsoft.com/en-us/azure/key-vault/certificates/certificate-scenarios#formats-of-import-we-support

https://docs.microsoft.com/en-us/answers/questions/258583/import-certificate-api-for-azure-key-vault.html

于 2022-01-26T12:07:45.803 回答