【发布时间】:2016-03-02 19:04:56
【问题描述】:
好的,这一直是一个持续存在的问题。我现在一直是experimenting for a couple of months,到目前为止,让我的应用程序与 Windows Server 2008 R2 通信的唯一方法是启用客户端和服务器计算机的"Use FIPS Compliant algorithms for encrypting, hashing, and signing" setting in the Group Policy。一旦打开(在客户端和服务器的注册表中启用了 TLS 1.2 并禁用了 TLS 1.0),它就可以工作了。
但是,我的困境是我不需要 FIPS 合规性,并且基于Microsoft's recommendation 以及我必须升级和更改大量代码才能使所有我的应用 FIPS 合规性(更不用说所有正在使用的 3rd 方应用程序是否都符合客户端的不确定性),我希望有更好的解决方案。
为了记录,我试图进行通信的应用程序是 MS Web Deploy 3.6、.NET Remoting over HTTPS/IIS 和 ClickOnce 部署。
我突然意识到,当我在服务器上启用 TLS 1.2 不启用 FIPS 模式时,浏览器可以与之通信。所以,显然有一些方法可以在没有这个设置的情况下完成工作,我只是没有找到它。
我查看了this answer 和this answer,但这似乎是一个无法在配置文件中设置的低级设置,因此它在我的 3 种情况中至少有 2 种不起作用(它可能适用于 .NET 远程处理,我还没有尝试过)。但是缺乏示例令人震惊-也许这就是答案,但我不知道如何使用它。
一个可接受的解决方案是只为某些用户启用 FIPS 合规性,这样我就可以单独配置每个应用程序,但由于我只能找到机器范围的设置,所以我不知所措。
我想出的另一个潜在解决方案是使用 VPN 连接到服务器,这样我的应用程序就不需要加密协议来进行通信。但是,由于我使用的是 Windows Server 2008 R2 Web 版(不支持 VPN),所以我坚持使用第 3 方解决方案(希望支持 TLS 1.2)或在新操作系统上重建我的服务器。
我的问题是:如何让编译的 .NET 应用程序(例如 MS Web Deploy 3.6)通过 TLS 1.2 进行通信不启用 FIPS 合规性,就像浏览器一样?
【问题讨论】:
标签: .net clickonce webdeploy fips tls1.2