完全免费的Windows代码签名证书(大神勿喷)
完全免费的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.需要准备的工具
制作自己的代码签名证书需要的工具有:
- cert2spc.exe
- makecert.exe
- signcode.exe
- certmgr.exe
BD网盘链接:传送门 提取码:324d
蓝奏云链接:传送门 提取码:DNick
2.2.开始制作
2.2.1.制作证书
首先,以管理员权限运行cmd,cd进工具所在的目录(我的工具所在的目录是D:\cert)
cd /d D:\cert
然后,用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替换成您证书的储存名称(其实也就是您的组织或公司的名称)
这个时候会弹出一个提示框,在这个提示框中设置您的密码,这个密码一定要记住,后面还需要用到。密码设置完成后就点击OK,如果不需要密码可以直接点None表示没有密码。
密码设置完成以后,会弹出另一个窗口,在这个窗口中重新输入刚刚设置好的密码,点击OK即可。
回到cmd窗口,看到上面显示Succeeded即表示操作成功,就可以在makecert.exe所在的目录下找到root.pvk和root.cer
在正常情况下打开root.cer的界面是这样的:
图中的Dounick就是前面命令中的CN
这时我们的证书会被认为是不受信任的证书,但是不要紧,我们继续回到cmd,执行下面的命令:
cert2spc.exe root.cer root.spc
同样,出现Succeeded的字样就说明命令执行成功。这条命令会根据刚刚生成好的root.cer转换成root.spc。.spc文件是PKCS#7证书,可以直接使用signcode.exe对可执行文件进行数字签名,但是系统提示证书不受信任该怎么办呢?
2.2.2.解决证书不受信任
回到cmd命令行,输入以下命令:
certmgr.exe -add -c root.spc -s -r localMachine root
注意,在执行这行命令的时候,360可能会报毒,直接允许就可以了。命令执行完成后,双击打开root.spc:
2.2.3.给 .exe .cab .dll .ocx等文件进行数字签名
双击打开signcode.exe,如图,注意是signcode.exe,不是signtool.exe
选择需要进行数字签名的应用(注意,在点击下一步之前,一定要确定选中的文件没有运行,并不是只读文件,否则程序会报错)
然后选中自定义,点击下一步:
接着选择我们之前准备好了的root.spc文件:
然后选择之前准备好的私钥文件,即root.pvk
接下来选择加密算法,默认就好
下一步也无需修改,默认就好
然后填写您应用程序的标题,这里填写的标题将会作为UAC几面的标题。
下面填写时间戳服务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
完成数字签名向导,在弹出的提示框里再次输入之前设置好的密码,这次一定不能输错,不然就要重新开始数字签名向导了。
这个时候再以管理员权限运行刚刚数字签名过的程序,就发现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
certmgr.exe -add -c root.spc -s -r localMachine root>>%temp%\config.tmp
for /f "delims=" %%a in (%temp%\config.tmp) do (set var=%%a)
echo %var% | find "CertMgr Failed" > NUL && goto no
echo %var% | find "CertMgr Succeeded" > NUL && goto yes
del /f /q %temp%\config.tmp: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以及开始前下载好的certmgr.exe
这就是我们制作完全免费的代码签名证书的全部过程,我希望可以把我的个人经验分享给大家,请大家多多指教,望大神勿喷...
完全免费的Windows代码签名证书(大神勿喷)相关推荐
- 汉诺塔_java_大神勿喷
汉诺塔_java_大神勿喷 问题描述 问题分析 代码实现 1.通项公式法 2.递推法 3.递归打印步骤 问题描述 汉诺塔是一个古老的数学问题: 有三根杆子A,B,C.A杆上有N个(N>1)穿孔圆 ...
- BadApple个人试制,大神勿喷。
一直看网上各种大神做的BadApple代码版视频,所以手痒想自己做一版出来,然而无奈本人编程菜鸟,只能参考别的大神的代码做下自己的修改.对于这里引用到的代码都会贴上链接,并原作者表达深深的敬意,权当是 ...
- 谈C++求a+b(大神勿喷)
刚学C++,发现C++的输入输出不再是printf与scanf,而是cout和cin,下面我由一道题来详细说明一下! 参照hduoj第1089题:求a+b的和. #include <iostre ...
- 【易语言作品】夜猫护眼宝 PC版 大神勿喷,语言是国产的易语言!
可保护您长时间或夜晚坐在电脑桌前,给您最大的眼睛保护!夜猫护眼宝电脑版是一款蓝光过滤软件.通过该软件,可以有效降低电脑辐射,减少对眼睛的伤害,是专为办公人员.游戏玩家等长时间对着电脑人群而设计.根据时 ...
- EV代码签名证书,支持Windows 10预览版和正式版驱动签名
DigiCert EV代码签名证书具有普通内核代码签名证书的所有功能,但不同的是采用更加严格国际标准扩展验证(EV验证),并且有严格的证书私钥保护机制--必须采用 USB Key来保护签名证书的私钥, ...
- 恶意软件利用合法的代码签名证书横行Windows 系统
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 安全研究员发现一起恶意活动依靠合法的代码签名证书将恶意代码伪装成合法的可执行文件. 研究人员将其中一种 payload 称为 Blister,它 ...
- 十大恶意软件让安卓手机成为噩梦,移动代码签名证书重要性大增
2019独角兽企业重金招聘Python工程师标准>>> 原文地址如下: http://cn.globalsign.com/support/support_ssl_1134.html ...
- Windows系统openssl颁发根证书以及下签子证书和代码签名证书
此文章转载自我的博客GoodBoyboy 1.首先创建根证书 (1)生成私钥 openssl genrsa -aes256 -out root.key 2048 然后输入私钥密码 生成root.key ...
- 余承东:华为技术走在产业前列,别人想超越很难;理想销量夺冠后,员工不满年终奖打折;黑客窃取GitHub代码签名证书|极客头条
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...
- 选择Digicert的EV代码签名证书有什么优势?
DigiCert是业内古老的根证书之一,兼容所有主流浏览器,兼容所有操作系统.安卓.苹果等平台.是美国老牌的CA认证中心,提供SSL证书和SSL管理工具十多年,DigiCert 旗下拥有DigiCer ...
最新文章
- Git - 使用指南
- java transaction cn,JAVA中如何用TRANSACTION来对数据库进行
- Codeforces Round #539 Div. 1
- ajax请求导致status为canceled的原因
- 2021年浙江省高考成绩查询时间,2021年浙江高考成绩什么时候出来 时间
- 完整的可按年份和月份查询数据并显示
- 【BZOJ-1952】城市规划 [坑题] 仙人掌DP + 最大点权独立集(改)
- Windows Phone 7 使用启动器(Lanucher)
- 计算机视觉(二)——深度学习进阶
- 编写程序,输入一个N,返回角谷变换(达到1所需)的次数
- 新浪财经三人行:专家谈萨班斯法案聊天实录
- 新版FMEA软件结构树图 免费申请试用(FMEAHunter)
- 找不到好看的电影就看《IMDB排名前500电影》
- vue-element-admin 后台管理系统
- 自写sort排序函数(支持重载排序规则)
- Python3网络爬虫:腾讯新闻App的广告数据抓取
- 发明现代概率的男人:他如何发现“不可能”对人类事务的影响?
- 春招面试经验系列(一)菜鸟网络
- Android开发全套学习!阿里P7级别面试经验总结,移动架构师成长路线
- Windows批量复制文件copy命令bat批处理文件
热门文章
- 征途服务器维护时间,《征途》服务器重组几大怪现象
- EVO自动处理SLAM数据脚本
- flash, sparkle, glow, gleam, twinkle, glitter
- win10u盘一直正在计算机,Windows10未插入U盘却一直显示的解决方法
- 手机QQ聊天记录备份
- Package Cache搬家
- EI会议论文发表流程剖析(史上最详细!经典!)
- 十二生肖的相合、相冲、相刑、相害
- python win7 安装失败 Service Pack 1
- TV_Control Android机顶盒手机控制全套程序开源