visual-studio - 使用代码签名证书对 ClickOnce 应用程序进行签名,但发布者仍然未知
问题描述
我有 2 个代码签名证书,两者CSR
的创建方式相同,导入和导出也以相同的方式完成。我看到的唯一区别是其中一个证书Common name
包含引号,而另一个不包含引号。
例如
some cert
和
some "cert"
企业社会责任创建
- 请求格式 PKCS #10
- 禁用“强私钥加密”
- 输入通用名称、组织、地区、州、国家
- 2048 字节的私钥
- 设置可导出的私钥
进口
- 将所有证书放在个人存储中
出口
- 如果可能,包括所有证书
- 启用证书隐私
- 加密算法 TripleDES-SHA1
误导的事情是这个Common name
值不是从我创建CSR
请求时输入的值中获取的
我正在使用这些证书来签署Winforms
应用程序Visual Studio
。没有引号的证书common name
工作正常(即,当我安装应用程序时,用户没有收到关于 的安全警告unknown publisher
),但是当我安装使用其他代码签名证书(带有引号Common name
)签名的应用程序时 - 它无法识别Publisher
。发布我的应用程序时没有错误。当我查看setup.exe
属性时,Windows Explorer
我看到一个Digital signatures
选项卡,其中包含我的证书行。
我尝试使用 signtool 对文件进行签名,然后进行验证 - 它说证书是有效的。
我试图从我购买证书的 godaddy.com 获得帮助,他们说它也应该与报价一起使用,但没有提供解决问题的帮助。Rekey
也没有帮助。
我看到有一些建议使用 Pre Publish、Post Build 任务,但我没有将这些建议用于我的第一个有效的证书。
那么,这里有没有人使用代码签名证书来Winforms
申请带有common name
引号的应用程序?或者也许有人知道这个问题以及如何解决它?
解决方案
必须撤消(未考虑common name
创建 CSR 时输入的内容,因此重新输入密钥是不够的!)我的代码签名证书并从头开始创建,公司名称中没有引号/括号。
所以这意味着,您将不得不再次等待几天,因为验证过程是从头开始的。当发行人与您联系时,他们将验证/询问您公司名称 - 确保它们不包含引号/括号。
撤销意味着您基本上将不得不再次购买您的证书,因为在您的帐户中撤销它(至少在 Godaddy 的情况下)后,您将无法再次创建它。因此,您必须联系支持人员(使用呼叫中心而不是聊天;)
推荐阅读
- javascript - 如何获取对于特定系统永远不会改变的浏览器序列号?
- c++ - 通过 cMake 使用具有自定义文件扩展名的共享库
- c# - 使成员虚拟化可防止调用默认接口实现并导致 C# 8 中的 StackOverflowException
- sql - TypeScript Sequelize:如何连接两个具有共同点的表
- java - Highchart 工具提示值的格式应基于区域设置
- python - Pygame 窗口没有关闭
- c# - 绑定到 WPF 组合框中的选定项
- angular - Angular 反应式表单通过按钮点击提交
- go - 密码保护 Go 语言中的 PDF 文件
- java - 这可能是一个愚蠢的问题,但希望得到澄清。我们可以说“超级”作为一个对象而不是java中的关键字吗?