免费自签代码证书

免费自签代码证书

1,代码签名有什么用?

图片[1]-免费自签代码证书

对于我们来说,代码签名的作用也就是在UAC和运行程序时的界面稍微好看一点,看上去更高大上一点。

对于Windows应用程序的开发人员和软件厂商来说,代码签名可以减少应用程序的错误信息并提高应用程序的的可信度。 软件厂商和个体开发商可对他们通过互联网分销的软件进行数字签名并盖上时间戳, 该数字签名确保了最终用户知道该软件是合法的, 来自知名的软件厂商并且该程序代码字自发行以来就没有被篡改过。

但是在bd里随便一搜,发现所有的代码签名服务都是付费的!

图片[2]-免费自签代码证书

甚至还有一些的价格…

图片[3]-免费自签代码证书

这种价格实在是让大多数朋友无法接受。

于是,我们就萌生了自己创建代码签名证书的想法。

闲话少聊,我们直接说正事

2,如何自己创建代码签名证书?

2.1.需要准备的工具

制作自己的代码签名证书需要的工具有:

  • cert2spc.exe
  • makecert.exe
  • signcode.exe
  • certmgr.exe

2.2.开始制作

2.2.1.制作证书

首先,以管理员权限运行cmd,cd进工具所在的目录(我的工具所在的目录是E:\ziqian\)

cd D:\ziqian\

然后,用makecert.exe开始制作证书

makecert.exe -sv root.pvk -ss SubjectName -n "CN=Dounick,E=Email,C=China,S=Hubei" -r root.cer

这行命令会创建root.pvk和root.cer两个文件,其中CN表示您的组织或公司的名称,这个公司名称会显示在UAC界面上,E表示您的电子邮箱,C表示国家,S表示省份。把SubjectName替换成您证书的储存名称(其实也就是您的组织或公司的名称)

图片[4]-免费自签代码证书

这个时候会弹出一个提示框,在这个提示框中设置您的密码,这个密码一定要记住,后面还需要用到。密码设置完成后就点击OK,如果不需要密码可以直接点None表示没有密码。

密码设置完成以后,会弹出另一个窗口,在这个窗口中重新输入刚刚设置好的密码,点击OK即可。

图片[5]-免费自签代码证书

回到cmd窗口,看到上面显示Succeeded即表示操作成功,就可以在makecert.exe所在的目录下找到root.pvk和root.cer

图片[6]-免费自签代码证书 图片[7]-免费自签代码证书

 

在正常情况下打开root.cer的界面是这样的:

图片[8]-免费自签代码证书

图中的Dounick就是前面命令中的CN

这时我们的证书会被认为是不受信任的证书,但是不要紧,我们继续回到cmd,执行下面的命令:

cert2spc.exe root.cer root.spc

2.2.2.解决证书不受信任

回到cmd命令行,输入以下命令:

certmgr.exe -add -c root.spc -s -r localMachine root

 

2.2.3.给 .exe .cab .dll .ocx等文件进行数字签名

双击打开signcode.exe,如图,注意是signcode.exe,不是signtool.exe

图片[9]-免费自签代码证书

选择需要进行数字签名的应用(注意,在点击下一步之前,一定要确定选中的文件没有运行,并不是只读文件,否则程序会报错)

图片[10]-免费自签代码证书

然后选中自定义,点击下一步:

图片[11]-免费自签代码证书

接着选择我们之前准备好了的root.spc文件:

图片[12]-免费自签代码证书

然后选择之前准备好的私钥文件,即root.pvk

图片[13]-免费自签代码证书

接下来选择加密算法,默认就好

http://tp.xueba666.cf/2021/09/15-300×258.png

下一步也无需修改,默认就好

图片[14]-免费自签代码证书

然后填写您应用程序的标题,这里填写的标题将会作为UAC几面的标题。

图片[15]-免费自签代码证书

下面填写时间戳服务URL,可以忽略,也可以填写以下几个URL中的一个:(填了也没什么实际作用,因为这都是其他证书颁发机构的时间戳此服务)

http://timestamp.digicert.com
http://timestamp.entrust.net/TSS/RFC3161sha2TS
http://timestamp.globalsign.com
http://rfc3161timestamp.globalsign.com/advanced
http://sha256timestamp.ws.symantec.com/sha256/timestamp
http://timestamp.wosign.com/rfc3161
http://timestamp.comodoca.com/rfc3161
http://tsa.starfieldtech.com
http://tsa.swisssign.net
http://timestamp.entrust.net/TSS/AuthenticodeTS
http://timestamp.globalsign.com/scripts/timstamp.dll
http://timestamp.verisign.com/scripts/timstamp.dll
http://timestamp.wosign.com/timestamp
http://timestamp.comodoca.com/authenticode

注:我也不知道现在有没有失效!!!

图片[16]-免费自签代码证书

完成数字签名向导,在弹出的提示框里再次输入之前设置好的密码,这次一定不能输错,不然就要重新开始数字签名向导了。

这个时候再以管理员权限运行刚刚数字签名过的程序,就发现UAC界面有变化了,说明自制代码签名证书成功

2.2.4.让程序在别的电脑上运行的时候,防止数字签名失效

如果证书不受信任,数字签名就不会起作用,UAC界面就不会更改,我们的证书是自己给自己颁发的,所以会被Windows默认分配到”不受信任的证书颁发者“中,也就是说,只有别人把我们制作的证书安装到了“受信任的证书颁发者“中,数字签名才会在别的电脑上生效,那我们不妨就在别人运行您的程序之前偷偷地把我们的证书安装到电脑上,具体步骤见下:

创建config.bat,内容如下:config.bat注意事项以及使用方法:

  • 如果文件%temp%\your.app.name.key存在,即表示证书导入成功,否则证书导入失败
  • 在config.bat所在目录下需要有事先准备好的root.spc以及开始前下载好的certmgr.exe

下载地址:https://www.123pan.com/s/GGsDVv-Nsgk3.html

提取码:yIeA

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 共2条

请登录后发表评论

    • 热门评论
      头像金万达0