Mono 5.14.0和TLS 1.2“没有此类TLS提供程序btls”

时间:2019-02-28 11:48:46

标签: c# ssl mono tls1.2 libtls

如果我使用HttpClient和 Mono 5.14.0 连接到 TLS 1.0-1.2 端点,则会出现异常“没有这样的TLS提供程序: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。参见here

如果我看一下MonoTlsProviderFactory.cs来了解这种行为,我会偶然发现这是我不理解的。

internal extern static bool IsBtlsSupported ();

请参见here,其中有MONO_FEATURE_BTLS符号是btls的条件。但是我怎么知道我的Mono版本是否用这个符号编译?

也有类似的情况,但具有较旧的Mono版本

0 个答案:

没有答案