【问题标题】:Powershell creating new self signed certificate. Root CA Certificate: extendedKeyUsage MUST NOT be present.tPowershell 创建新的自签名证书。根 CA 证书:extendedKeyUsage 不得存在。t
【发布时间】:2019-07-13 23:28:02
【问题描述】:

我目前正在使用 powershell 制作 RootCA 和 SAN 证书。 现在一切正常,只是在信任证书方面似乎有些浏览器非常严格。通过 linter(在本例中为 Z-lint)运行我的证书时,我目前遇到了最后一个错误。

zlint 错误根 CA 证书:extendedKeyUsage 不得存在。t

现在错误非常明显......在创建我的 RootCA 时,我的 powershell 命令中不应出现extendedKeyUsage

但是我只在我的命令中使用 -keyUsage。我不太确定需要对命令进行什么调整才能消除错误。

$rootCert = New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -keyUsage KeyEncipherment,DigitalSignature,CrlSign,CertSign -Subject "CN=AgionRootCA, OU=supplied, O=supplied, C=supplied, L=supplied, S=supplied"  -TextExtension @("1.3.6.1.4.1.311.21.10={text}1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2", "2.5.29.19={text}CA=true","2.5.29.37={text}1.3.6.1.4.1.311.10.12.1")

关注后->

在查看 Microsoft Docs 的 New-SelfSignedCertificate cmdlet 时,它对 -KeyUsage 开关进行了以下说明:

指定在证书的密钥使用扩展中设置的密钥使用。 此参数可接受的值为:

  • 证书签名
  • CRLSign
  • 数据加密
  • 仅解密
  • 数字签名
  • 仅加密
  • 密钥协议
  • 密钥加密
  • 无(默认)
  • 不可否认

默认值 None 表示此 cmdlet 不包含 KeyUsage 新证书中的扩展名。 因此,如果您不希望extendedKeyUsage 出现,您需要将 -keyUsage KeyEncipherment,DigitalSignature,CrlSign,CertSign 更改为 -keyUsage None 如果您根本不包含开关,这将是默认设置。

错误消息增加,说明我确实需要常规 -KeyUsage,但不需要 -extendedKeyUsage

错误信息:

zlint ERROR 根和从属 CA 证书 keyUsage 扩展的 crlSign 位必须设置 zlint 错误根 CA 证书:必须设置 keyCertSign 和 cRLSign 的位位置。
zlint 错误根 CA 证书:extendedKeyUsage 不得存在。t

【问题讨论】:

  • 1.3.6.1.4.1.311.21.10 是“应用程序证书策略”,指定的值看起来非常像 TLS 服务器和 TLS 客户端 EKU。试着把它排除在外。
  • 感谢 Barton 的帮助,你把我推向了正确的方向,我开始查看 OID 并在那里发现了问题 :)

标签: powershell ssl certificate


【解决方案1】:

好吧,我设法解决了这个问题。 在我的 Powershell 命令中,我在最后添加了 OID 2.5.29.37,显然 OID 2.5.29.37 是 ExtendedKeyUsage。因此,我不断遇到这个问题。关门了!

关于此事的更多信息Self signed certificates

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2016-07-08
    • 2018-12-28
    相关资源
    最近更新 更多