Powershell创建新的自签名证书。根CA证书:绝对不能存在extendedKeyUsage。

时间:2019-02-20 09:59:53

标签: powershell ssl certificate

我目前正在使用Powershell制作RootCA和SAN证书。 现在,一切都在正常进行,因为似乎所有浏览器在信任证书时都非常严格。我目前正在通过短绒棉衣(在这种情况下为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文档中的New-SelfSignedCertificate cmdlet时,它会显示有关-KeyUsage开关的以下内容:

     

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

     
      
  • CertSign
  •   
  • CRLSign
  •   
  • 数据加密
  •   
  • 仅解密
  •   
  • DigitalSignature
  •   
  • 仅加密
  •   
  • 密钥协议
  •   
  • 密钥加密
  •   
  • 无(默认)
  •   
  • 不可否认
  •   
     

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

错误消息增加,表明我确实需要常规的-KeyUsage,而不需要-extendedKeyUsage

错误消息:

  

zlint错误根和从属CA证书密钥必须设置使用扩展的crlSign位   zlint错误根CA证书:必须设置keyCertSign和cRLSign的位位置。
  zlint错误根CA证书:绝对不能存在extendedKeyUsage。t

1 个答案:

答案 0 :(得分:2)

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

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