完全免费的Windows代码签名证书(⼤神勿喷)
安卓软件签名工具本⽂⽬录
完全免费的Windows代码签名证书
1. 代码签名有什么⽤?
2.如何⾃⼰创建代码签名证书?
2.1.需要准备的⼯具
2.2.开始制作
2.2.1.制作证书
2.2.2.解决证书不受信任
2.2.
3.给 .exe .cab .dll .ocx等⽂件进⾏数字签名
2.2.4.让程序在别的电脑上运⾏的时候,防⽌数字签名失效
1. 代码签名有什么⽤?
对于我们来说,代码签名的作⽤也就是在UAC和运⾏程序时的界⾯稍微好看⼀点,看上去更⾼⼤上⼀点。
对于Windows应⽤程序的开发⼈员和软件⼚商来说,代码签名可以减少应⽤程序的错误信息并提⾼应⽤程序的的可信度。 软件⼚商和个体开发商可对他们通过互联⽹分销的软件进⾏数字签名并盖上时间戳, 该数字签名确保了最终⽤户知道该软件是合法的, 来⾃知名的软件⼚商并且该程序代码字⾃发⾏以来就没有被篡改过。
但是在bd⾥随便⼀搜,发现所有的代码签名服务都是付费的
甚⾄还有⼀些的价格…
这种价格实在是让⼤多数朋友⽆法接受。
于是,我们就萌⽣了⾃⼰创建代码签名证书的想法。
闲话少聊,我们直接说正事。
2.如何⾃⼰创建代码签名证书?
2.1.需要准备的⼯具
制作⾃⼰的代码签名证书需要的⼯具有:
<
<
<
<
某盘链接:传送门 提取码: 324d(有⾦币的⼤佬如果愿意就在我的CSDN下载中送我⼏个C币呗)
2.2.开始制作
2.2.1.制作证书
⾸先,以管理员权限运⾏cmd,cd进⼯具所在的⽬录(我的⼯具所在的⽬录是D:\cert)
cd /d D:\cert
然后,⽤开始制作证书
< -sv root.pvk -ss SubjectName -n “CN=Dounick,E=Email,C=China,S=Hubei” -
这⾏命令会创建root.pvk和两个⽂件,其中CN表⽰您的组织或公司的名称,这个公司名称会显⽰在UAC界⾯上,E表⽰您的电⼦邮箱,C表⽰国家,S表⽰省份。把SubjectName替换成您证书的储存名称(其实也就是您的组织或公司的名称)
这个时候会弹出⼀个提⽰框,在这个提⽰框中设置您的密码,这个密码⼀定要记住,后⾯还需要⽤到。密码设置完成后就点击OK,如果不需要密码可以直接点None表⽰没有密码。
密码设置完成以后,会弹出另⼀个窗⼝,在这个窗⼝中重新输⼊刚刚设置好的密码,点击OK即可。
回到cmd窗⼝,看到上⾯显⽰Succeeded即表⽰操作成功,就可以在所在的⽬录下到root.pvk和
在正常情况下打开的界⾯是这样的:
图中的Dounick就是前⾯命令中的CN
这时我们的证书会被认为是不受信任的证书,但是不要紧,我们继续回到cmd,执⾏下⾯的命令:
< root.spc
同样,出现Succeeded的字样就说明命令执⾏成功。这条命令会根据刚刚⽣成好的转换成root.spc。.spc⽂件是PKCS#7证书,可以直接使⽤对可执⾏⽂件进⾏数字签名,但是系统提⽰证书不受信任该怎么办呢?
2.2.2.解决证书不受信任
回到cmd命令⾏,输⼊以下命令:
< -add -c root.spc -s -r localMachine root
注意,在执⾏这⾏命令的时候,360可能会报毒,直接允许就可以了。命令执⾏完成后,双击打开root.spc:
2.2.
3.给 .exe .cab .dll .ocx等⽂件进⾏数字签名
双击打开,如图,注意是,不是
选择需要进⾏数字签名的应⽤(注意,在点击下⼀步之前,⼀定要确定选中的⽂件没有运⾏,并不是只读⽂件,否则程序会报错)
然后选中⾃定义,点击下⼀步:
接着选择我们之前准备好了的root.spc⽂件:
然后选择之前准备好的私钥⽂件,即root.pvk
接下来选择加密算法,默认就好
下⼀步也⽆需修改,默认就好
然后填写您应⽤程序的标题,这⾥填写的标题将会作为UAC⼏⾯的标题。
下⾯填写时间戳服务URL,可以忽略,也可以填写以下⼏个URL中的⼀个:
完成数字签名向导,在弹出的提⽰框⾥再次输⼊之前设置好的密码,这次⼀定不能输错,不然就要重新开始数字签名向导了。
这个时候再以管理员权限运⾏刚刚数字签名过的程序,就发现UAC界⾯有变化了,说明⾃制代码签名证书成功
2.2.4.让程序在别的电脑上运⾏的时候,防⽌数字签名失效
如果证书不受信任,数字签名就不会起作⽤,UAC界⾯就不会更改,我们的证书是⾃⼰给⾃⼰颁发的,所以会被Windows默认分配到”不受信任的证书颁发者“中,也就是说,只有别⼈把我们制作的证书安装到了“受信任的证书颁发者“中,数字签名才会在别的电脑上⽣效,那我们不妨就在别⼈运⾏您的程序之前偷偷地把我们的证书安装到电脑上,具体步骤见下:
创建config.bat,内容如下:
@echo off
mshta vbscript:msgbox(“请关闭⼀切杀毒软件并授予Windows命令处理程序管理员权限,即允许Windows命令处理程序具对您的设备进⾏更改,否则操作可能会失败!”,64+4096,“证书操作”)(window.close)
%1 %2
mshta vbscript:createobject(“shell.application”).shellexecute("%~s0",“goto runas”,“goto notadmin”,“runas”,1) (window.close)&&exit
:runas
cd /d %~dp0
setlocal enabledelayedexpansion
< -add -c root.spc -s -r localMachine root>>%temp%\p
for /f “delims=” %%a in (%temp%\p) do (set var=%%a)
echo %var% | find “CertMgr Failed” > NUL && goto no
echo %var% | find “CertMgr Succeeded” > NUL && goto yes
del /f /q %temp%\p
:no
del /f /s %temp%\your.app.name.key
cls
mshta vbscript:msgbox(“证书导⼊失败,请尝试重新关闭杀毒软件并以管理员权限运⾏此脚本!”,64+4096,“证书操作”) (window.close)
exit
:yes
echo CertMgr Succeeded>>%temp%\your.app.name.key
mshta vbscript:msgbox(“证书导⼊成功!”,64+4096,“证书操作”)(window.close)
exit
config.bat注意事项以及使⽤⽅法:
如果⽂件%temp%\your.app.name.key存在,即表⽰证书导⼊成功,否则证书导⼊失败
在config.bat所在⽬录下需要有事先准备好的root.spc以及开始前下载好的
这就是我们制作完全免费的代码签名证书的全部过程,我希望可以把我的个⼈经验分享给⼤家,请⼤家多多指教,望⼤神勿喷…
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论