问题是关于强制 Win7 仅使用 TLS 1.2。(是的,我知道 Win7 不再有补丁,没关系。)
根本问题是 Ubisoft Connect 无法正常工作。我认为,日志表明这与使用错误版本的 TLS 有关。日志:
Http status code is 404 for url https://wallet.ecom.ubi.com/...
Http status code is none for url https://channel-service.upc.ubi.com/...
(HTTP状态码是无?日志文件中的其他调用正常,表明请求本身存在一些基本问题。像TLS问题。但可能不是,所以我希望能够检查TLS 1.2是否配置为唯一可用的协议正确 - 我怀疑它不是。)
使用 SSLLabs,我查看了这些网站支持的 TLS 版本:
- https://www.ssllabs.com/ssltest/analyze.html?d=wallet.ecom.ubi.com
- https://www.ssllabs.com/ssltest/analyze.html?d=channel-service.upc.ubi.com
似乎不同之处在于wallet
支持TLS 1.0 & 1.1但不支持1.3并且channel-service
不支持1.0 & 1.1,但支持1.3。(虽然我并没有尝试使用 1.3。)
由于两者似乎都支持1.2 ,这就是我希望 Ubisoft Connect 使用的版本。所以我试图将我的 Win7 配置为仅使用 TLS 1.2,而根本不使用 1.0/1.1。(遗憾的是,不支持 1.3。)
毕竟我想通了,这里是解释。也许它对其他人也有用。
注册表更改
SCHANNEL\Protocols
工作正常。它们可以使用 Internet Explorer 进行测试。Firefox 自带 HTTPS 代码,因此无法对其进行测试。当您设置
Enable=0
所有 HTTPS 加密协议时,没有 HTTPS 网站将在 Internet Explorer 中运行。Ubisoft Connect 也不会,您甚至无法再登录。我停用了所有这些(SSL 2.0、SSL 3.0、TLS 1.0、TLS 1.1),但 TLS 1.2 除外。这样,将始终使用 TLS 1.2。(Win7 不支持 TLS 1.3。)然后登录再次工作,因为处理该问题的服务器似乎不受下面解释的问题的影响。问题是,https://channel-service.upc.ubi.com/不允许Windows 7 支持的任何密码套件。而且 Windows 7 不允许您安装新的。育碧端点支持的列表相当小:https ://www.ssllabs.com/ssltest/analyze.html?d=channel-service.upc.ubi.com&s=54.147.167.217
这些在 Windows 7 中似乎都不可用。
这可以通过使用 Internet Explorer 访问 Github.com 和 Ubisoft 端点进行测试。Github 可以,但 Ubisoft 端点不行。两个站点都使用 TLS 1.2,但 Github 允许更多种类的密码套件:https ://www.ssllabs.com/ssltest/analyze.html?d=github.com
因此,我从中得出的结论是,育碧应该将Windows 7 中支持的至少一个密码套件添加到其相关端点服务器接受的密码套件列表中。那将是理智的,好的解决方案。他们会这样做吗?... :|
我的解决方法“解决方案”是通过以下方式欺骗他们的端点服务器:
channel-service.upc.ubi.com
,将其作为根证书安装在我的机器上,并在我的网络中安装另一个(使用 Windows 10)。这是必要的,因为我们将假装是 Ubisoft 端点,而实际上我们不是。HTTPS 客户端仅检查证书链是否返回到某个根证书,正如我们刚刚添加的那样。channel-service.upc.ubi.com
到我网络中的另一台机器。这是必要的,以便 Ubisoft Connect 与我们的网络服务器应用程序通信,而不是尝试向互联网发出请求。HttpClient
连接到 Windows 7 机器上的 Ubisoft 端点,因为连接失败,就像 Internet Explorer 和 Ubisoft连接失败。但它确实适用于 Windows 10。它也适用于 Java 程序。现在我可以提供一个“网关”了吗?“代理人”?让我网络上所有运行 Windows 7 的机器与实际的 Ubisoft 端点进行通信。他们只需要根证书和主机文件修改。万岁,我现在可以玩多人游戏并再次使用聊天功能。:)
我猜你也可以配置一个真正的代理?嗯,不确定。