A certificate's basic constraint extension has not been observed
我是新来的证书,我有一个驱动程序,我必须进行数字签名测试,否则Windows阻止它。我使用他们提供的教程,使用OpenSSL为测试目的创建了一个自签名测试证书。
我已将证书安装到所有需要信任的Windows商店,在对驱动程序文件进行签名后,一切正常,直到我重新启动我的PC,之后它说我的证书不再由于此问题进行数字签名:证书的基本没有观察到约束扩展。
我认为这可能是因为我的测试证书不再有效所以我在重启我的电脑之前创建了一个新问题。我已经尝试了很多可以在教程中找到的选项,我遇到了同样的问题而且我不愿意仅为几个测试购买证书。
我该怎么做才能解决这个问题?这些是我的证书中的基本约束:主题类型= CA路径长度约束=无
如果您有解决方案,请向我发一步说明我必须逐步完成的工作,我是OpenSSL和证书的新手。
附加信息:
这是我一直尝试的教程,所有其他教程都给我相同的结果/问题:点击我(链接)
这是问题的图像:点击我(链接)
我没有足够的资料来使用嵌入式图像。
-
您的基本约束扩展未正确配置。 Subject Type必须End Entity,而不是CA。
-
我怎么做? 就像我已经注意到的,我是新手,需要说明。
不在Windows上使用OpenSSL,但我知道如何在PowerShell中执行此操作。 打开PowerShell控制台并复制/粘贴以下命令:
1 2 3 4 5 6 7
| $cert = New-SelfSignedCertificate -Type CodeSigningCert `
-Subject"CN=My Subject" `
-CertStoreLocation cert:\currentuser\my `
-KeyAlgorithm rsa `
-Provider"Microsoft Enhanced Cryptographic Provider v1.0"
Export-PfxCertificate -Cert $cert -FilePath"c:\temp\mycert.pfx" -Password (ConvertTo-SecureString -String"Password" -Force -AsPlainText) |
此命令将生成适用于代码签名目的的自签名证书。
-
转到certmgr.msc,展开Perdonal Certificates,选择您的证书,右键单击All Tasks - > Export。按照导出向导将证书导出到PFX
-
如何为文件生成私钥,证书和pfx?我之前从未使用过PowerShell
-
谢谢,如果我成功,我会将此标记为答案
-
看到我的更新。添加了一条以编程方式将证书导出到PFX文件的行。出现提示时,输入密码以保护PFX。
-
如何指定有效日期和有效日期?
-
使用-NotBefore和-NotAfter指定证书有效性。
-
我收到错误无论我做什么,字符串都不被识别为有效的DateTime。这就是我所拥有的:Get-Date -Date"1/1/2020",我也尝试了其他各种方式,但我得到了同样的错误
-
这取决于您的区域设置。某些区域设置可能使用点而不是斜线,或前一年(例如,2020/1/1)或1.1.2020
-
我无论如何都会得到同样的错误,这是我的时间和日期格式的图像:prntscr.com/go29ey
-
以下是我目前的情况:prntscr.com/go2c3l
-
在parantheses中包装参数参数:-NotBefore (Get-Date) -NotAfter (Get-Date -Date"1/1/2020")。
-
将证书导出到文件的代码中的最后一个错误:prntscr.com/go2gh0
-
看到更新的最后一行。
-
它似乎还不错,但还有一个问题,它说其预期目的仅用于代码签名,你能告诉我如何为所有目的制作它吗?
-
修复它,它现在用于各种目的。谢谢,如果这样可行,它将被标记为答案。由于某种原因,我的signtool有点破碎。
-
为什么需要"所有目的"证书?
-
为了确保一切都很好,我仅将其用于测试目的。我是一名专业的高级程序员,因此我需要一切可用,特别是在内部系统开发期间。就像我说的那样,我是证书新手,所以我需要确保它能够正常工作。
-
谢谢!我使用了另一个signtool,它说证书现在好了! prntscr.com/go2yv2,您是这方面的真正专家。
-
更新:它仍然说我的驱动程序由于某种原因是数字无符号的,但证书现在很好!
-
他需要OpenSSL,而不是Windows工具:"我已经使用OpenSSL为测试目的创建了一个自签名测试证书"。
-
为什么他在使用Windows时需要OpenSSL?