Azure Key Vault 证书 - 创建基本约束 CA:True

Posted

技术标签:

【中文标题】Azure Key Vault 证书 - 创建基本约束 CA:True【英文标题】:Azure Key Vault certificate - create Basic Constraints CA:True 【发布时间】:2022-01-22 07:24:03 【问题描述】:

我想通过 Azure 门户(Azure Key Vault)创建自签名 CA 证书。我不确定如何设置 X509 扩展基本约束 CA:True

一些参考链接: https://docs.microsoft.com/en-us/powershell/module/pkiclient/new-selfsignedcertificate?view=win10-ps

https://www.alvestrand.no/objectid/2.5.29.19.html

(注意:我需要通过 Azure 门户手动完成,而不是 openssl 或 PowerShell 脚本)

我是怎么做到的

我得到了什么

我的期望是 CA:True。谢谢你的帮助:)

【问题讨论】:

【参考方案1】:

显然,这可以通过 REST API 工作,但遗憾的是既没有通过 Portal UI 也没有通过 .NET Client SDK 公开。此外,它现在没有正确记录。

当您查看 example response for the Get Certificate Policy endpoint 时,您会看到它有一个部分 "basic_constraints" 包含您要查找的值(即使它没有记录在同一页面下方的相应 X509CertificateProperties section 中) .

然而,该属性记录在 REST API 的通用 "D509 props" documentation 中。请注意path_len_contraint 中的拼写错误,但如果您想使用它,则需要使用path_len_constraint

所以当使用

发布到https://<yourvault>.vault.azure.net/certificates/some-new-cert/create?api-version=7.0
    "x509_props": 
        ...
        "key_usage": [
            "keyCertSign"
        ],
        "basic_constraints": 
            "ca": true,
            "path_len_constraint": 3
        
    ,

它实际上按预期设置了值。其他参数见Create Certificate documentation。

结果可以在导出证书的openssl转储中看到:

        X509v3 Key Usage: critical
            Certificate Sign
        X509v3 Basic Constraints: critical
            CA:TRUE, pathlen:3

【讨论】:

看来不能再这样做了。 目前无法试用。他们现在禁用该功能会觉得很奇怪,特别是因为他们承认了这个用例并在几天前开始修复文档:github.com/Azure/azure-rest-api-specs/issues/… BTW,estiller 确认它在 5 月底仍然有效:github.com/estiller/build-pki-net-azure-sample/issues/… 我可以确认这仍然可以通过 REST 工作,但不能通过 SDK。

以上是关于Azure Key Vault 证书 - 创建基本约束 CA:True的主要内容,如果未能解决你的问题,请参考以下文章

Azure Key Vault门户未显示秘密

Azure Key Vault 证书证书标识符、秘密标识符、密钥标识符之间的区别

如何使用 Azure Key Vault 中的证书/密钥对使用 Azure Pipelines 构建的代码进行签名?

如何在 Azure Key Vault 中序列化和反序列化 PFX 证书?

Azure Key Vault 使用Azure Portal创建和查看Azure Key Vault

ASP.NET Core Web Api配置Azure Key Vault