热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

气隙的.NET代码签名应用程序将无法安装/运行

如何解决《气隙的.NET代码签名应用程序将无法安装/运行》经验,应该怎么办?

我们最近更新了我们的应用程序,以便使用带有新证书的SHA-256代码签名.程序集是使用Sign the assemblyVisual Studio 2015中的选项签名的强名称.Visual Studio中的post build事件运行两个signtool.exe进程以在SHA-256和旧SHA-1证书中签名:

call "C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" 
sign /f "" /p "" /t 
 "$(TargetPath)"

call "C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" 
sign /f "" /p "" /fd sha256 /tr 
 /td sha256 /as /v "$(TargetPath)"

最后,我们使用Advanced Installer作为安装包装程序,Digital Signature并且根据.exe签名使用证书和时间戳在页面上进行代码签名.

最终的安装文件将按照您的预期在Internet连接的Windows计算机上安装和运行.安装时,您可以通过setup.exe和运行时的属性看到证书已分配且有效,以及证书链.此外,Windows将应用程序识别为来自受信任的来源,并显示相应的已验证发布者详细信息.

我们的客户群主要是全球100家公司,大部分部署将在气隙网络中进行.在此环境中的第二次更新部署中,无法验证证书,导致安装程序无法完成.

这是有道理的,因为Windows(2012服务器R2)计算机与Internet隔离,并且由于公司政策的原因,已经Turn off Automatic Root Certificates设置为Enabled.此设置可以Computer Configuration -> Administrative Templates -> System -> Internet Communication Management -> Internet Communication Settings在MMC应用程序的文件夹中找到(您需要安装证书插件).

在我们的本地测试台上进行测试时,如果上述注册表设置为默认值(Disabled),即使未连接到Internet的计算机也会从安装实用程序安装证书.我们可以通过更改策略设置来匹配客户的(Enabled)来复制问题.

作为解决方法,我们手动下载证书颁发机构根证书并将其作为受信任的根证书安装,并且安装将正常进行.

当我们向客户提供此变通方法时,尽管证书颁发机构根证书存在于计算机的受信任根证书中,但安装仍然失败.

证书颁发机构客户服务团队建议我们从签名过程中删除时间戳以允许安装继续进行 - 这是他们提供的唯一帮助(这是另一个故事).但是,这意味着一旦代码签名证书过期,应用程序将停止运行或将显示未经验证的发布者错误.

我并不完全相信这会解决问题,因为当我们在本地测试时,安装程​​序仍然可以找到证书,并且在手动安装证书颁发机构根证书时允许安装继续.

我无法做的是复制客户环境以准确再现问题(这没有帮助).几乎就像Windows绕过本地计算机的受信任的根证书存储区.我假设如果这是可能的,那么Windows可以验证中央根证书存储.

这甚至可以在Windows中设置吗?如果是这样,我会在哪里找到关于此的文档或如何完成?

我是否在代码签名步骤中遗漏了一些内容,或者在检查证书时我对安装机器上应该发生什么的理解?

我不知道如何使这个安装程序工作.我无法承受的是继续回到客户那里让他们继续测试我们的安装.首先,它真的不是正确的调试过程,因为供应供应商不是要解决的客户问题,但更重要的是,我需要我们的团队了解导致此问题的原因以及如何正确地解决问题.

理想情况下,如果我不需要,我不会删除时间戳,因为如果软件在证书到期之前没有升级,这将导致新问题.

任何和所有帮助非常感谢.


推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
author-avatar
盼抽淡了烟的悲伤
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有