c# - 强制 HttpWebRequest 和 ClientWebSocket 使用 TLS 1.2

标签 c# .net unity-game-engine websocket mono

我正在尝试使用 ClientWebSocket 类连接到 websocket。我正在使用 Unity 2017.4.10。不幸的是,C#/Mono 始终使用 TLS 1.0,但由于某种原因失败了。当我检查与 Wireshark 的连接时,我收到一个加密的警报数据包,​​并且连接关闭。

我已经尝试通过设置强制使用 TLS 1.2:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

但 WebSocket 仍然尝试使用 TLS 1.0 连接。

当连接到 wss://echo.websocket.org 时它可以工作,因为 websocket.org 仅支持 TLS 1.2。不幸的是,我的提供商仍然支持 TLS 1.0、1.1 和 1.2。 无论我如何尝试,HttpWebRequestClientWebSocket 类始终使用 TLS 1.0。

我知道使用了 TLS 1.0,因为 Wireshark 和 Fiddler 都是这么说的。

最佳答案

看起来这是一个统一错误并已在 2018.2 中修复

Issue

关于c# - 强制 HttpWebRequest 和 ClientWebSocket 使用 TLS 1.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53264102/

相关文章:

Azure 空间 anchor - 在 HoloLens 上获取云空间异常

javascript - 当我只告诉它调用一个函数时,Blazor 服务器应用程序中的 JSRuntime.InvokeVoidAsync 调用多个函数

c# - 更改 ComboBox 文本但不更改所选项目

c# - 对 Windows Phone 8 应用程序中的相同图标文件感到困惑

c# - DispatcherTimer - 如果前一个滴答仍在运行,则防止触发滴答事件

c# - 只有多个线程之一执行特定代码路径

android - Unity3d WIfi direct (P2P) 安卓支持

c# - 何时使用哈希表

.net - 使用 Websphere MQ 主题 .NET API

android - 从 Unity Game 在 Android 应用程序上共享图像