gpt4 book ai didi

android - 在 Android 中添加自签名证书时出错

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:38 24 4
gpt4 key购买 nike

我正在尝试使用 retrofit 并按照本网站上的说明从 Android 设置自签名证书:https://adiyatmubarak.wordpress.com/2016/01/19/adding-ssl-certificate-to-retrofit-2/

完成后,我得到以下错误:

 06-17 00:36:01.574 9898-9898/com.creardigitalm.samsungconciergeargentina     
E/checkIfS7OrS7EdgeByModel: onFailure: Hostname ec2-54-187-245-213.us-west-2.compute.amazonaws.com not verified:certificate:sha1/x+YzLQ11jAtlgEG6qJg8W9cqp/k=
DN:1.2.840.113549.1.9.1=#161e6c7569732e6a6172616d696c6c6f40637265617264697469616c2e636f6d,CN=54.187.245.213,OU=IT,O=Crear Digital,L=Cali,ST=Valle del Cauca,C=co
subjectAltNames: []
javax.net.ssl.SSLPeerUnverifiedException: Hostname ec2-54-187-245-213.us-west-2.compute.amazonaws.com not verified:
certificate: sha1/x+YzLQ11jAtlgEG6qJg8W9cqp/k=
DN:1.2.840.113549.1.9.1=#161e6c7569732e6a6172616d696c6c6f40637265617264697469616c2e636f6d,CN=54.187.245.213,OU=IT,O=Crear Digital,L=Cali,ST=Valle del Cauca,C=co subjectAltNames: []
at okhttp3.internal.io.RealConnection.connectTls(RealConnection.java:197)
at okhttp3.internal.io.RealConnection.connectSocket(RealConnection.java:145)
at okhttp3.internal.io.RealConnection.connect(RealConnection.java:108)
at okhttp3.internal.http.StreamAllocation.findConnection(StreamAllocation.java:188)
at okhttp3.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:127)
at okhttp3.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
at okhttp3.internal.http.HttpEngine.connect(HttpEngine.java:289)
at okhttp3.internal.http.HttpEngine.sendRequest(HttpEngine.java:241)
at okhttp3.RealCall.getResponse(RealCall.java:240)
at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:198)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:160)
at okhttp3.RealCall.access$100(RealCall.java:30)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:127)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:33)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)

如果有人可以帮助我,我将不胜感激。

最佳答案

可以关注安卓的documentation对此。查看标题为“Unknown certificate authority”和“Self-signed server certificate”的部分。

您要做的是将自签名证书存储在您应用程序的 bundle 中,然后使用 Android 来信任新的自签名证书。以下是其文档中提到的步骤。

  1. 从 InputStream 加载 CA
  2. 创建一个包含我们信任的 CA 的 keystore
  3. 创建一个信任我们 KeyStore 中的 CA 的 TrustManager
  4. 创建一个使用我们的 TrustManager 的 SSLContext
  5. 告诉 URLConnection 使用我们 SSLContext 中的 SocketFactory

您可以找到代码 here .

关于android - 在 Android 中添加自签名证书时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37873659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com