You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#开发的.exe程序弹出Windows SmartScreen,如何生成免费证书消除弹窗?

针对Windows SmartScreen提示的免费exe签名解决方案

场景1:仅内部管控的多台电脑部署

这种场景用自签名证书即可完全解决问题,操作步骤如下:

  • 以管理员身份运行PowerShell,执行命令生成代码签名用途的自签名证书:
    New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=你的应用自定义名称" -CertStoreLocation "Cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(10)
  • 导出证书文件:按下Win+R输入certmgr.msc打开证书管理器,在「个人 - 证书」分类下找到刚生成的对应名称的证书,右键选择「所有任务 - 导出」:
    • 导出带私钥的pfx格式证书:用于后续给程序签名,导出时按提示设置访问密码即可
    • 导出不带私钥的cer格式公钥证书:用于部署到目标电脑的信任列表
  • 给exe签名:使用Visual Studio自带的signtool工具执行签名命令:
    signtool sign /f 你的pfx证书路径 /p 证书密码 /t http://timestamp.digicert.com 目标exe路径
  • 批量消除SmartScreen提示:将cer格式公钥证书通过组策略、批处理等方式,部署到所有目标电脑的「受信任的根证书颁发机构」和「受信任的发布者」证书存储区即可。

场景2:公开发布给外部用户使用

自签名证书不会被外部系统默认信任,需要申请微软信任的公开代码签名证书:

  • 目前有符合要求的免费公开代码签名证书可申请,申请时需完成个人/组织身份验证,验证通过后即可拿到可公开信任的签名证书
  • 拿到证书后使用上述signtool命令完成签名即可,注意必须添加时间戳参数,避免证书过期后签名失效
  • 新证书签名的程序首次发布时可能还会触发SmartScreen提示,这是正常的声誉积累机制,随着程序安装量提升,提示会自动消失

补充说明:EV级代码签名证书可以直接跳过声誉积累环节,签名后立刻消除SmartScreen提示,但这类证书没有免费版本。

内容的提问来源于stack exchange,提问作者Albanese98

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:45:02