如何验证数字签名?

时间:2013-04-22 07:00:42

标签: c# .net vb.net certificate digital-signature

我花了3天时间阅读和测试,以了解一下这些数字签名和代码签名到底是什么,为什么存在以及如何签署我的应用...(仍然没有学到100%)

好吧,今天我已经完成了我自己的证书和数字签名,但是当我尝试在其他机器上打开已编译的应用程序,比如使用Win7的VirtualMachine(VBOX)时,我仍然从共享设备获取此建议(我的意思是网络设备,你知道虚拟机的共享文件夹)

enter image description here

建议说我的数字签名无效,我不知道为什么!

无法验证免费的数字签名?

这是我从命令行中获取证书的方式:

makecert -r -pe -a sha1 -n "CN=%Name%" -b "%InitialDate%" -e "%ExpireDate%" -$ individual -sr LocalMachine -ss my -cy authority -# "%SerialNumber%" "%Name%.cer"

这就是我签署框架4应用程序的方式:

SignTool sign /f "%Name%.pfx" /p "%Password%" Application.exe

此外,我已在项目的签名选项卡中添加了我的证书,但我仍然从Windows获得了建议屏幕...

当我尝试在其他计算机上运行 NON 恶意应用程序时,为什么操作系统会建议使用该屏幕?

我缺少什么?

PS:我知道如何绕过设置IE选项的建议屏幕,但这不是其他人的解决方案。

1 个答案:

答案 0 :(得分:3)

这是因为您使用自己的非正版证书对代码进行签名。代码签名证书必须由合法的受信任发布者(如Thawte,VeriSign,GlobalSign等)颁发。否则,您需要以自己的方式分发自己的证书,并要求用户将证书作为可信证书导入。法律证书通常由Windows自动分发。