软件下载的时候被电脑提示未知开发者,怎么办?
从代码签名的技术与合规角度,“未知开发者 / 未知发布者” 的核心原因是:你的软件没有被系统信任的数字证书签名,导致操作系统(Windows SmartScreen /macOS Gatekeeper)无法验证发布者身份与代码完整性。 下面从原理 → 证书选型 → Windows 签名 → macOS 签名 → 长期信任完整说明。 系统安全机制的核心判断: 只有正规代码签名才能彻底消除警告,用户端看到 “发布者:XX 公司”。 ↓ 代码签名证书:https://www.joyssl.com/certificate/select/code_signing.html?n... ↑ 主流 CA:DigiCert、Sectigo、GlobalSign、JoySSL(国内) 准备材料: 生成 CSR(证书签名请求) powershell cmd cmd bash 运行 bash 运行 bash 运行 必须加时间戳 SHA256 算法 证书安全 驱动程序特殊要求 避免无效方案 表格 Windows macOS 一句话:正规代码签名是唯一彻底解决 “未知开发者” 的方法,临时绕过只是权宜之计。一、为什么未签名会报 “未知开发者”?
二、代码签名证书类型与选型(Windows)
1. OV 代码签名(组织验证,主流)
2. EV 代码签名(扩展验证,最高信任)

三、Windows 完整代码签名流程(彻底解决 “未知发布者”)
1. 申请证书(CA 机构)
# PowerShell生成
New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=你的公司名" -KeyUsage DigitalSignature2. 用 SignTool 签名(Windows SDK)
(1)安装 SignTool
(2)签名命令(必加时间戳!)
signtool sign /f 证书.pfx /p 证书密码 /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 你的软件.exe/f:证书文件/p:证书密码/fd SHA256:签名算法(必须 SHA256,旧 SHA1 无效)/tr:时间戳服务器(关键!避免证书过期后签名失效)(3)验证签名
signtool verify /pa /v 你的软件.exe3. 提升 SmartScreen 信誉(OV 证书必做)
四、macOS 代码签名(解决 “无法打开,因为来自未知开发者”)
1. 前提:苹果开发者账号
2. 证书类型
3. 签名 + 公证(macOS 10.15+ 必须)
(1)用 codesign 签名
# 签名(--deep递归签内嵌组件)
codesign --force --deep --sign "Developer ID Application: 你的公司名 (TeamID)" --timestamp 你的App.app--timestamp:添加时间戳(必加)security find-identity -v -p codesigning(2)苹果公证(Notarize)—— 强制!
# 上传公证
xcrun notarytool submit 你的App.zip --apple-id 你的邮箱 --password 专用密码 --team-id 你的TeamID
# 查看日志
xcrun notarytool log 提交ID --apple-id 你的邮箱 --password 专用密码 --team-id 你的TeamID
# stapler 绑定公证结果(离线也可验证)
xcrun stapler staple 你的App.app(3)验证
codesign -vvv 你的App.app
spctl -a -vvv 你的App.appaccepted、source=Developer ID五、关键最佳实践(必看)
六、效果对比(签名 vs 未签名)
状态 用户看到 系统警告 转化率 未签名 未知发布者 红色强拦截 低(流失 70%+) OV 签名(新) 公司名 轻度警告 中 OV(信誉满) 公司名 无警告 高 EV 签名 公司名 立即无警告 最高 macOS 签名 + 公证 可信开发者 无警告 高 七、总结(最简路径)