c# - Mono 5.14.0 和 TLS 1.2“没有这样的 TLS 提供程序 btls”
问题描述
如果我使用 HttpClient 和Mono 5.14.0连接到TLS 1.0 - 1.2端点,我会收到异常“No such TLS Provider: 。”btls
No such TLS Provider: `btls'.
at Mono.Net.Security.MonoTlsProviderFactory.LookupProvider (System.String name, System.Boolean throwOnError)
as Mono.Net.Security.MonoTlsProviderFactory.CreateDefaultProviderImpl ()
at Mono.Net.Security.MonoTlsProviderFactory.InitializeInternal ()
如果我将 TLS 提供程序更改为旧版,我只能连接到具有 TLS 1.0 的端点,具有 TLS 1.0 - 1.2 的端点不起作用。
MONO_TLS_PROVIDER=legacy
我不明白提供者 blts 是如何未知的,因为 Mono 4.8.0 是来自 BoringSSL 项目的提供者 btls。看这里。
如果我查看MonoTlsProviderFactory.cs以了解这种行为,我会偶然发现这条线,我不明白。
internal extern static bool IsBtlsSupported ();
看到这里,有一个MONO_FEATURE_BTLS
符号是 btls 的条件。但是我怎么知道我的 Mono 版本是不是用这个符号编译的呢?
有类似的情况,但使用的是较旧的 Mono 版本
解决方案
推荐阅读
- kubernetes - Kubernetes——一个部署可以有多个副本集吗?
- javascript - Javascript执行函数onload但不触发按钮的onclick事件
- python - Python中内存中的时间到期字典
- php - 当关系满足 Laravel Eloquent 条件时如何获取产品
- android - Firebase 中的用户登录
- c++ - 构造函数定义 C++ 语法
- matlab - 在 MATLAB 中将数组从球面坐标转换为笛卡尔坐标
- apache-spark - GraphFrames 检测排他的出站关系
- python - 使用 len() 函数
- python - Python Pandas:更改列标题 - 获取“关键错误”