【发布时间】: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