Windows环境中,为自己的应用添加发行者证书

Windows环境中,为自己的应用添加发行者证书

在 Windows 上,如果你运行一个自定义构建的 Go 应用,Windows SmartScreen 或 UAC 可能会显示“发行者为未知”,这是因为你的应用没有经过代码签名认证。为了让 Windows 识别你的发行者信息,你需要给应用添加代码签名(Code Signing Certificate)


如何为 Go 应用添加发行者信息(代码签名)

步骤 1:获取代码签名证书

你需要一个 代码签名证书 来给你的应用签名。这些证书由可信证书颁发机构(CA)提供,如:

  • DigiCert
  • Sectigo (Comodo)
  • GlobalSign
  • Let's Encrypt(免费 TLS 证书,但代码签名证书需要商业购买)

如果只是测试使用,你也可以生成一个自签名证书(详见下方步骤),但这不会被 Windows 视为可信任发行者。


步骤 2:生成自签名证书(测试用)

如果只是本地测试或学习目的,可以生成自签名证书:

  1. 打开 PowerShell(管理员权限)。

  2. 运行以下命令创建一个自签名证书:

    $cert = New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=MyCompany" -CertStoreLocation "Cert:\CurrentUser\My"
    
  3. 导出证书为 .pfx 文件(包括私钥):

    Export-PfxCertificate -Cert "Cert:\CurrentUser\My\$($cert.Thumbprint)" -FilePath "C:\path\to\mycert.pfx" -Password (ConvertTo-SecureString -String "your-password" -Force -AsPlainText)
    

这会生成一个自签名的 .pfx 文件,稍后会用来签名你的可执行文件。


步骤 3:安装 signtool 工具

signtool 是 Windows SDK 中的工具,用于给可执行文件和安装包签名。

  1. 安装 Windows SDK下载地址)。
  2. 在终端中确保 signtool 可用:
    signtool
    
    如果显示帮助信息,则说明安装成功。

步骤 4:给可执行文件签名

  1. 构建你的 Go 可执行文件:

    go build -o myapp.exe main.go
    
  2. 使用 signtool 给应用签名:

    signtool sign /f C:\path\to\mycert.pfx /p your-password /tr http://timestamp.digicert.com /td sha256 /fd sha256 myapp.exe
    
    • /f:证书文件路径(.pfx)。
    • /p:证书文件密码。
    • /tr:时间戳服务器(避免签名过期)。
    • /td/fd:使用 SHA-256 算法。
    • myapp.exe:要签名的可执行文件。
  3. 验证签名是否成功:

    signtool verify /pa myapp.exe
    

步骤 5:检查签名和发行者信息

  1. 右键点击已签名的 myapp.exe
  2. 选择 属性 > 数字签名
  3. 确认签名是否成功,发行者是否显示为你指定的名称(如 CN=MyCompany)。

步骤 6:发布和避免未知发行者提示

  • 发布前测试:确保在不同的 Windows 设备上测试你的应用签名,检查是否显示发行者信息。
  • 购买可信证书:自签名证书只能用于本地测试。如果要避免 Windows 警告,必须从可信的证书颁发机构(CA)购买代码签名证书。

总结

通过给你的 Go 应用添加代码签名证书,Windows 系统就能识别你的应用的发行者信息,避免“未知发行者”的提示。你可以使用 自签名证书来测试,但在生产环境下,需要购买可信证书来确保你的用户不会看到安全警告。

本文作者:Gold_stein

本文链接:https://www.cnblogs.com/smartljy/p/18488178

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Gold_stein  阅读(175)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 逃离地面 RAD & 三浦透子
逃离地面 - RAD & 三浦透子
00:00 / 00:00
An audio error has occurred.

作词 : 野田洋次郎

作曲 : 野田洋次郎

空飛ぶ羽根と引き換えに 繋ぎ合う手を選んだ僕ら

それでも空に魅せられて 夢を重ねるのは罪か

夏は秋の背中を見て その顔を思い浮かべる

憧れなのか、恋なのか 叶わぬと知っていながら

重力が眠りにつく 1000年に一度の今日

太陽の死角に立ち 僕らこの星を出よう

彼が眼を覚ました時 連れ戻せない場所へ

「せーの」で大地を蹴って ここではない星へ

行こう

もう少しで運命の向こう もう少しで文明の向こう

もう少しで運命の向こう もう少しで

夢に僕らで帆を張って 来たるべき日のために夜を超え

いざ期待だけ満タンで あとはどうにかなるさと 肩を組んだ

怖くないわけない でも止まんない

ピンチの先回りしたって 僕らじゃしょうがない

僕らの恋が言う 声が言う

「行け」と言う