我花了 3 天的时间阅读和测试,以了解一点数字签名和代码签名到底是什么,为什么存在以及如何签署我的应用程序......(仍然没有学到 100%)
好吧,今天我已经完成了自己的证书和数字签名,但是当我尝试在其他机器上打开编译的应用程序时,比如带有 Win7 的 VirtualMachine (VBOX),我仍然从共享设备(我的意思是来自网络设备,你知道虚拟机的共享文件夹)
提示说我的数字签名无效,我不知道为什么!
无法验证免费数字签名?
这是我从命令行获取证书的方式:
makecert -r -pe -a sha1 -n "CN=%Name%" -b "%InitialDate%" -e "%ExpireDate%" -$ individual -sr LocalMachine -ss my -cy authority -# "%SerialNumber%" "%Name%.cer"
这就是我签署 Framework 4 应用程序的方式:
SignTool sign /f "%Name%.pfx" /p "%Password%" Application.exe
我还在我的项目的签名选项卡中添加了我的证书,但我仍然从 Windows 获得建议屏幕......
当我尝试在其他机器上运行我的非恶意应用程序时,为什么操作系统会提示该屏幕?
我错过了什么?
PS:我知道如何绕过设置 IE 选项的建议屏幕,但这不是其他人的解决方案。
最佳答案
这是因为您使用自己的非正版证书对代码进行签名。代码签名证书必须由合法的可信发布者颁发,如 Thawte、VeriSign、GlobalSign 等...否则您需要以自己的方式分发自己的证书并要求用户将证书导入为可信证书。合法证书通常由 Windows 更新自动分发。
关于c# - 如何验证数字签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16141191/