面向新手:免费签名打包可执行文件的现代最简流程(含PowerShell4)
嘿,老兄,我来一步步带你搞定这个免费证书签名的事儿,全程用PowerShell 4操作,不用那些老掉牙的makecert、signtool,你有自己的自制exe和谷歌买的域名就够了!
免费证书签名全流程(PowerShell 4专属版)
第一步:必须用管理员权限打开PowerShell
别直接双击打开PowerShell!右键点开始菜单里的PowerShell,选「以管理员身份运行」——权限不够的话后面全白搭,新手一定要记牢这一步!
第二步:生成绑定你域名的自签名证书
用New-SelfSignedCertificate命令,把证书和你的域名绑定,这样系统会更认可它。复制下面的命令,把yourdomain.com换成你自己的真实域名(比如你买的是jacobscode.com就换成这个),直接粘贴到PowerShell里回车就行:
New-SelfSignedCertificate -DnsName "yourdomain.com", "www.yourdomain.com" -CertStoreLocation "Cert:\LocalMachine\My" -KeyAlgorithm RSA -KeyLength 2048 -HashAlgorithm SHA256 -KeyExportPolicy Exportable
简单说下这些参数的作用,不用深究:
-DnsName:填你的主域名和www前缀,覆盖更多场景-CertStoreLocation:把证书存在本地机器的证书库,方便后续调用- 后面几个算法参数都是当前主流的安全配置,直接用就行
-KeyExportPolicy Exportable:允许导出证书,以后换电脑或者备份都能用
第三步:导出带私钥的证书文件
生成的证书现在存在系统里,我们得把它导出成.pfx格式的文件,才能用来签名exe:
- 按下Win+R打开「运行」,输入
certlm.msc回车,打开本地机器证书管理器 - 展开左侧的「个人」→「证书」,找到刚才生成的、显示你域名的那个证书
- 右键点这个证书→「所有任务」→「导出」,跟着向导走:
- 选择「是,导出私钥」,点下一步
- 格式选「个人信息交换 - PKCS #12 (.PFX)」,勾上「Include all certificates in the certification path if possible」,下一步
- 设置一个强密码(一定要记好!后面签名要用到),下一步
- 选个容易找到的保存路径(比如桌面),给文件起个名字(比如
my_sign_cert.pfx),点完成就导出成功了
第四步:给你的自制exe签名
回到管理员权限的PowerShell,用Set-AuthenticodeSignature命令完成签名。把下面命令里的路径和密码换成你自己的:
Set-AuthenticodeSignature -FilePath "C:\Users\YourName\Desktop\my_app.exe" -Certificate (Get-PfxCertificate -FilePath "C:\Users\YourName\Desktop\my_sign_cert.pfx" -Password (ConvertTo-SecureString "YourCertPassword" -AsPlainText -Force))
- 把
C:\Users\YourName\Desktop\my_app.exe换成你自制exe的真实路径 - 把
C:\Users\YourName\Desktop\my_sign_cert.pfx换成刚才导出的pfx文件路径 - 把
YourCertPassword换成你设置的证书密码
回车运行后,等几秒钟,要是输出里的「Status」列显示「Valid」,就说明签名搞定了!
新手必看提醒
- 自签名证书是免费,但毕竟不是权威CA颁发的,其他电脑打开你的exe时还是会提示「未知发布者」,但自己用或者给信任的朋友用完全没问题
- 一定要保管好你的
.pfx文件和密码,丢了就没法给新的exe签名了 - 要是PowerShell提示命令不存在,先输入
$PSVersionTable.PSVersion确认下是不是真的是PowerShell 4版本
内容的提问来源于stack exchange,提问作者Jacob Birkett
相关产品推荐
相关产品推荐

