【发布时间】:2017-11-30 20:28:50
【问题描述】:
我正在开发一个 Xamarin.Forms PCL 项目,我正在尝试向位于 Intranet SSL 服务器上的 REST API 发送请求。 Intranet 服务器正在使用自签名证书。我一直在 Android 项目上对此进行测试,但出现以下错误:
11-30 19:59:10.645 E/mono-rt (4180): [错误] 致命的未处理异常: Javax.Net.Ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: 找不到证书路径的信任锚. ---> Java.Security.Cert.CertificateException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。 ---> Java.Security.Cert.CertPathValidatorException:找不到证书路径的信任锚。 11-30 19:59:10.645 E/mono-rt (4180):---内部异常堆栈跟踪结束--- 11-30 19:59:10.645 E/mono-rt (4180):---内部异常堆栈跟踪结束--- 11-30 19:59:10.645 E/mono-rt (4180): --- 托管 Javax.Net.Ssl.SSLHandshakeException 堆栈跟踪结束--- 11-30 19:59:10.645 E/mono-rt (4180): javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: 找不到证书路径的信任锚。 11-30 19:59:10.645 E/mono-rt (4180): at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:361) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.Connection.upgradeToTls(Connection.java:242) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.Connection.connect(Connection.java:159) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.Connection.connectAndSetOwner(Connection.java:175) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:120) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:330) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:319) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:241) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.Call.getResponse(Call.java:271) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:228) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:199) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.Call.access$100(Call.java:34) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.Call$AsyncCall.execute(Call.java:162) 11-30 19:59:10.645 E/mono-rt (4180): at com.squareup.okhttp.internal.NamedRunnable.run(NamedRunnable.java:33) 11-30 19:59:10.645 E/mono-rt (4180): 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 11-30 19:59:10.645 E/mono-rt (4180): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 11-30 19:59:10.645 E/mono-rt (4180): 在 java.lang.Thread.run(Thread.java:761) 11-30 19:59:10.645 E/mono-rt(4180):原因:java.security.cert.CertificateException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。 11-30 19:59:10.645 E/mono-rt (4180): at com.android.org.conscrypt.TrustManagerImpl.verifyChain(TrustManagerImpl.java:563) 11-30 19:59:10.645 E/mono-rt (4180): at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:444) 11-30 19:59:10.645 E/mono-rt (4180): at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:401) 11-30 19:59:10.645 E/mono-rt (4180): at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:375) 11-30 19:59:10.645 E/mono-rt (4180): at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:304) 11-30 19:59:10.645 E/mono-rt (4180): 在 android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94) 11-30 19:59:10.645 E/mono-rt (4180): 在 android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:88) 11-30 19:59:10.645 E/mono-rt (4180): at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:178) 11-30 19:59:10.645 E/mono-rt (4180): at com.android.org.conscrypt.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:596) 11-30 19:59:10.645 E/mono-rt (4180): at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) 11-30 19:59:10.645 E/mono-rt (4180): at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:357) 11-30 19:59:10.645 E/mono-rt (4180): ... 16 更多 11-30 19:59:10.645 E/mono-rt (4180):原因:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。 11-30 19:59:10.645 E/mono-rt (4180): ... 27 更多
我应该如何解决这个问题?
【问题讨论】:
-
任何想法.......
标签: c# ssl xamarin.forms certificate printer-control-language