【发布时间】:2020-06-10 15:47:00
【问题描述】:
我在 Centos 7 上使用 openssl 1.0.2 的 C# websocket 客户端应用程序遇到问题。我们有一个应用程序可以在我们的 Windows 机器上毫无问题地连接到(第三方)websocket 服务器。当我们尝试从我们的 linux 机器连接到第三方的生产环境时,它会失败(尽管我们可以很好地连接到他们的 UAT ws 服务器)。该错误与“dh key too small”有关。
Afaik,问题的根本原因可能是第三方生产服务器正在运行过时的 openssl 版本。我无法控制这一点,也无法强制他们升级。
如果我(在我的 python 代码中)更改 ssl 密码字符串(例如 ssl._DEFAULT_CIPHERS += 'ALL:!EXPORT:!LOW:!aNULL:),我可以使用 python 测试应用程序成功连接到第三方生产服务。 !eNULL:!SSLv2:!DH')。 '!DH' 部分似乎是解决此问题的一种方法。我还应该注意 - 这都是在私人网络中(没有公共互联网公开)。
对于 linux 环境中的 .NET Core 应用,我们如何以类似的方式更新密码或达到相同的效果。我们需要对 openssl 进行更改吗?有没有办法在我们的 C# 代码中做到这一点。任何建议将不胜感激!
谢谢
【问题讨论】:
标签: c# .net ssl websocket openssl