1

我创建了一个自签名 CA 证书并将其放在当前用户受信任的根证书颁发机构证书存储中。然后,我使用以下方法创建了软件发布者证书:

makecert -n "CN=Temp Name, O=Temp Corporation, C=US" -h 0 ^
         -eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" ^
         -e 01/01/2015 -ic "Temp CA.cer" -iv "Temp.pvk" ^
         -sv "Temp SPC.pvk" -a sha256 "Temp SPC.cer"

...并将生成的文件合并到一个 pfx 文件中,如下所示:

Pvk2Pfx /pvk "Temp SPC.pvk" /spc "Temp SPC.cer" /pfx "Temp SPC.pfx"

我继续使用这个 pfx 文件使用 Visual Studio (2013) 签署一个简单控制台应用程序的 ClickOnce 清单,一切都很好。但是,在测试生成的 Setup.exe 时,我注意到应用程序安装 - 安全警告对话框报告发布者未知。

按照这个 MSDN 指南,我设法通过排除-a sha256标志使事情按预期工作,结果是:

makecert -n "CN=Temp Name, O=Temp Corporation, C=US" -h 0 ^
         -eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" ^
         -e 01/01/2015 -ic "Temp CA.cer" -iv "Temp.pvk" ^
         -sv "Temp SPC.pvk" "Temp SPC.cer"

我不明白这个。为什么指定-a sha256SPC 会导致发布者“未知”(以及看起来更加愤怒的对话、黄色盾牌等等)?


编辑:实际上,它变得有点奇怪;我只是尝试更改为-a sha512这也有效

makecert /n "CN=Temp Name, O=Temp Corporation, C=US" /h 0 ^
         /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" ^
         /e 01/01/2015 -ic "Temp CA.cer" -iv "Temp.pvk" ^
         /sv "Temp SPC.pvk" -a sha512 "Temp SPC.cer"
4

0 回答 0