certificate - Clickonce 应用程序已签名,但下载时发布者仍然未知

标签 certificate clickonce iis-8 publisher

我有一个有效的未过期代码签名证书(标准,不是 EV),我用它来成功签署一次点击应用程序 (.net 4.5) 并发布到 Web 服务器以供下载。下载此应用程序时,它会正确显示发布者名称。问题是,在任何其他应用程序上安装代码签名证书后,它在下载时将发布者名称显示为“未知发布者”。我安装证书的方式和所有应用程序都发布到同一 Web 服务器的方式没有任何区别。当我登录到 Web 服务器时打开 .exe 或 list 文件时,它会正确显示发布者名称。检查“数字签名”文件属性表明它们是使用正确的代码签名证书和 sha256 签名的。以下是我使用的步骤:

  • 已安装代码签名证书以通过“签名”选项卡单击一次应用程序并启用它(Visual Studio 2017 Pro)。
  • 代码签名算法是带有有效时间戳服务器 ( http://timestamp.comodoca.com/?td=sha256 ) 的 sha256RSA。
  • 单击一次应用程序集未签名。
  • 代码签名证书已安装在开发机器上(Windows 10 Pro 1809)。
  • 代码签名证书已安装在“受信任的根证书颁发机构”和“中间证书颁发机构”(使用 IIS 8 的 Windows 2012 R2)的 Web 服务器上,用于“计算机帐户”。

  • 附带说明一下,我使用 SHA1 从 Internet Explorer 导出代码签名证书,然后将其安装到 Web 服务器。存在一个已知问题,即当证书已导出为 SHA256 并尝试将其导入 Web 服务器时,该文件的密码将始终显示不正确。这发生在我身上,所以我只是将 SHA1 版本导入到 Web 服务器。不确定这是否会产生任何问题,但它适用于一键式应用程序。
    更新:如果我转到发布部署 URL 并单击“安装”按钮,我会注意到一些奇怪的东西。在为带有“未知发布者”的 clickonce 应用程序下载 setup.exe 后,我看到一个更可怕的智能屏幕过滤​​器,说该文件未签名,但在其下方显示正确的发布者信息。检查 exe 的“数字签名”属性表明它已正确签名。

    最佳答案

    我的问题是由于在 Visual Studio 中启用了“使用应用程序 list 获取信任信息”选项时发布者名称与我的代码签名证书颁发给谁不匹配。取消选中该选项或更正发布者名称可解决该问题。这将在下面进一步解释:
    检查您的应用程序 list 是否用于信任信息(即发布者名称)。如果是,请确保“说明”部分中的发布者名称与证书颁发给的人完全匹配。如果不匹配,您将收到“未知发布者”问题。此设置位于 Visual Studio 中的“发布”选项卡中。单击“选项...”按钮,然后单击“ list ”列表项。
    enter image description here
    我会尝试取消选中“使用应用程序 list 获取信任信息”,看看是否能解决问题。如果您确实需要选中“使用应用程序 list ”选项,请单击“说明”选项卡并确保“发布者名称”值与代码签名证书颁发给的名称值完全匹配。
    Make sure publisher name matches who the code signing certificate was issued to

    关于certificate - Clickonce 应用程序已签名,但下载时发布者仍然未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62430653/

    相关文章:

    Java,从证书导出公钥(X.509、Base64 .cer)

    ssl - 在 JBoss 上安装 SSL 证书

    c# - 为什么 ClickOnce 下载未更改的文件?

    azure - 如何使用颁发者证书在 Azure key 保管库中签署 CSR

    ClickOnce 通过编程更新但不是框架更新因无效 list 错误而失败

    c# - ClickOnce 发布期间出错

    google-chrome - 为什么我通过 https 访问网站时会出现登录提示?

    asp.net-mvc-4 - 在 MVC4 中捕获 404 错误

    asp.net - 具有非托管依赖项的 64 位托管程序集未在 IIS/ASP.NET MVC 4 中加载

    spring-boot - 如何将外部 ssl 证书导入 java 本地 keystore ?