为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Windows上为代码签名创建自签名证书?

/ 猿问

如何在Windows上为代码签名创建自签名证书?

海绵宝宝撒 2019-07-27 15:03:18

如何在Windows上为代码签名创建自签名证书?

如何使用Windows SDK中的工具为代码签名创建自签名证书?



查看完整描述

3 回答

?
宝慕林4294392

我在使用它时遇到了一些麻烦,并且不断得到红色的“Windows无法验证此驱动程序软件的发布者”错误对话框。关键是要安装测试根证书

certutil -addstore Root Demo_CA.cer

罗杰的答案并没有完全覆盖。

这是一个适合我的批处理文件(使用我的.inf文件,不包括在内)。它显示了如何从头到尾完成所有操作,根本没有GUI工具(除了一些密码提示)。

REM Demo of signing a printer driver with a self-signed test certificate.REM Run as administrator (else devcon won't be able to try installing the driver)REM Use a single 'x' as the password for all certificates for simplicity.PATH %PATH%;"c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin";"c:\Program Files\Microsoft SDKs\Windows\v7.0\Bin";c:\WinDDK\7600.16385.1\bin\selfsign;c:\WinDDK\7600.16385.1\Tools\devcon\amd64makecert -r -pe -n "CN=Demo_CA" -ss CA -sr CurrentUser ^
   -a sha256 -cy authority -sky signature ^
   -sv Demo_CA.pvk Demo_CA.cermakecert -pe -n "CN=Demo_SPC" -a sha256 -cy end ^
   -sky signature ^
   -ic Demo_CA.cer -iv Demo_CA.pvk ^
   -sv Demo_SPC.pvk Demo_SPC.cerpvk2pfx -pvk Demo_SPC.pvk -spc Demo_SPC.cer ^
   -pfx Demo_SPC.pfx ^
   -po xinf2cat /drv:driver /os:XP_X86,Vista_X64,Vista_X86,7_X64,7_X86 /vsigntool sign /d "description" /du "www.yoyodyne.com" ^
   /f Demo_SPC.pfx ^
   /p x ^
   /v driver\demoprinter.catcertutil -addstore Root Demo_CA.cerrem Needs administrator. If this command works, the driver is properly signed.devcon install driver\demoprinter.inf LPTENUM\Yoyodyne_IndustriesDemoPrinter_F84Frem Now uninstall the test driver and certificate.devcon remove driver\demoprinter.inf LPTENUM\Yoyodyne_IndustriesDemoPrinter_F84Fcertutil -delstore Root Demo_CA


查看完整回答
反对 回复 2019-07-27
?
慕标琳琳

如答案中所述,为了使用非弃用的方式签署您自己的脚本,应该使用New-SelfSignedCertificate

  1. 生成密钥:
    New-SelfSignedCertificate -DnsName email@yourdomain.com -Type CodeSigning -CertStoreLocation cert:\CurrentUser\My

  2. 导出没有私钥的证书:
    Export-Certificate -Cert (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)[0] -FilePath code_signing.crt[0]将使这项工作适用于有多个证书的情况...显然使索引与您要使用的证书相匹配...或使用某种方式过滤(通过thumprint或发行者)。

  3. 将其导入为Trusted Publisher
    Import-Certificate -FilePath .\code_signing.crt -Cert Cert:\CurrentUser\TrustedPublisher

  4. 将其作为根证书颁发机构导入。
    Import-Certificate -FilePath .\code_signing.crt -Cert Cert:\CurrentUser\Root

  5. 签署脚本。
    Set-AuthenticodeSignature .\script.ps1 -Certificate (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)

显然,一旦你设置了密钥,你就可以简单地用它来签署任何其他脚本。
您可以在本文中获得更多详细信息和一些故障排除帮助。


查看完整回答
反对 回复 2019-07-27
  • 3 回答
  • 0 关注
  • 2038 浏览
我要回答
慕课专栏
更多

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信