我正在尝试生成一个适合于签署(UWP)应用程序的证书。我有一个自我签名的证书和一个由我的公司内部证书颁发机构根据我自己制作并提交给他们的CSR (证书请求)文件颁发的证书。
要生成自签名证书,我使用了以下powershell命令
New-SelfSignedCertificate -Type Custom -Subject "<full certificate DN>" -KeyUsage DigitalSignature -FriendlyName "MyFriendlyName" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}")
为了生成由内部CA颁发的证书,我创建了一个具有相同属性的CSR:
KeyUsage: Digital Signature
ExtendedKeyUsage: CodeSigning (1.3.6.1.5.5.7.3.3)
2048 bit key
algo: AES-SHA256
大多数其他属性默认。
如前所述,自签名证书有效,Visual将不接受CA颁发的证书.下面是当我试图为签名分配CA颁发的证书时遇到的错误:
报表设计器无法导入证书。您选择的证书对签名无效,因为它已经过期或有其他问题。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=241478。
编辑-注: CA根和中间证书安装在适当的证书存储区中的计算机上。
以下是并行证书的属性。有什么方法可以知道失败的证书有什么特别的问题吗?,我觉得我已经满足了所有的UWP签名要求。
更新
事情变得更奇怪了。这些步骤有效:
下面是我的SignTool命令行:
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64\signtool.exe" sign /v /fd sha256 /sha1 <my CA-issued cert thumbprint> "path-to-my-unsigned.msix"
使用/v的Signtool输出(详细):
The following certificate was selected:
Issued to: <my org>
Issued by: <my internal CA name>
Expires: Mon Apr 30 11:41:36 2035
SHA1 hash: <CA-Issued cert hash>
Done Adding Additional Store
Successfully signed: path-to-my-app.msix
Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0
所以问题仍然存在,为什么Visual不接受我的CA颁发的证书作为一个有效的签名证书,即使我可以使用它来使用SignTool.exe?手动签名。
端更新
发布于 2020-05-05 17:38:23
我拥有UWP的这个过程--我怀疑Peter的方法是正确的,并且您正在遇到我们内部正在进行的链验证,并且由于某种原因没有通过集合。
由于我们的内部流程与VS的反馈相关联,我将跟踪您的那里。
我为我们创建了一个任务,当我们以不明显的理由拒绝证书时,给出一个更好的错误消息。
https://stackoverflow.com/questions/61529439
复制相似问题