知道我的应用程序的解决方法是什么。我的应用程序在我们的服务器使用 TLS 1.2 之前运行良好,在我们升级到 TLS 1.3 后,所有 HttpClient POST 和 GET 请求都不起作用并出现异常
内部异常
Javax.Net.Ssl.SSLProtocolException: SSL handshake aborted: ssl=0xcb444f08: Failure in SSL library, usually a protocol error
error:1000042e:SSL routines:OPENSSL_internal:TLSV1_ALERT_PROTOCOL_VERSION (external/boringssl/src/ssl/tls_record.cc:592 0xcb172b48:0x00000001)
--- End of managed Javax.Net.Ssl.SSLProtocolException stack trace ---
javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xcb444f08: Failure in SSL library, usually a protocol error
error:1000042e:SSL routines:OPENSSL_internal:TLSV1_ALERT_PROTOCOL_VERSION (external/boringssl/src/ssl/tls_record.cc:592 0xcb172b48:0x00000001)
at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
at com.android.org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:375)
at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:224)
at com.android.okhttp.internal.io.RealConnection.connectTls(RealConnection.java:192)
at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:149)
at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:112)
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:184)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:461)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:26)
下面的代码片段是 HttpClient 请求的 ny HttpClient 设置。
public HttpClient httpClient { get; set; }
public ApiServiceBase()
{
this.httpClient = new HttpClient() { BaseAddress = BaseAddress };
this.httpClient.Timeout = TimeSpan.FromSeconds(60);
this.httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}
- Visual Studio 社区 2019 版本 16.7.2
- .Net 框架 4.8 版