我已将 Ubuntu 18.04 升级到 20.04 VPS 。
然后我还升级了 Mono 运行时,现在是 6.12.0.200 。 阿帕奇是 2.4.41.
我有一个“混合”应用程序 PHP + Asp.net / ASMX 中的一些 Web 服务。
升级后,如果我调用任何 ASMX,我会收到以下错误:Mono.Btls.MonoBtlsException:Ssl 错误:1000042e:SSL 例程:OPENSSL_internal:TLSV1_ALERT_PROTOCOL_VERSION。
我的服务器在 HTTPS 上运行,并带有 Let's Encrypt 证书。
我可以做什么来解决?
谢谢
如此处提到,尝试设置
MONO_TLS_PROVIDER
tp legacy
,检查问题是否仍然存在,然后重新启动您的应用程序。
MONO_TLS_PROVIDER=legacy mono your_app.exe
mono/mono
第11763期]提到:
export MONO_TLS_PROVIDER=legacy mono MonoSslTest.exe
作品:
Certificate Subject [CN=client1]
然而,与正常工作的 btls 相比,在此平台上使用旧版提供程序会使每个 HTTPS 请求花费超过 30 秒(即使是那些不使用客户端证书的请求)。如果您不愿意再等一年,我采取了一种解决方法,即不在 Mono 中使用 HTTPS,而是使用 nginx 作为代理,并在请求标头中将客户端证书传递给 Mono。