2016-06-17 4 views
1

내가 개조를 사용하여 설치 안드로이드에서 자체 서명 된 인증서를 시도하고있는 자체 서명 된 인증서를 추가하고 다음과 같은 경우 : 그 일을 한 후 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) 

나는 주셔서 감사합니다.

+0

'CN = 54.187.245.213' 때문에 앱에 예외가 발생했다고 생각합니다. 어떻게 HostnameVerifier를 설정 했습니까? https://developer.android.com/training/articles/security-ssl.html#CommonHostnameProbs – BNK

답변

0

Android의 documentation을 확인할 수 있습니다. 제목이 "Unknown certificate authority"및 "Self-signed server certificate"인 섹션을 확인하십시오.

당신이 할 일은 앱의 번들에 자체 서명 된 인증서를 저장 한 다음 Android를 사용하여 새로운 자체 서명 된 인증서를 신뢰하는 것입니다. 다음은 해당 설명서에서 언급 한 단계입니다. 의 InputStream

  • 에서

    1. 로드 CA는 우리의 신뢰할 수있는 CA
    2. 만들기 우리의 TrustManager
    3. URLConnection의에게를 사용하는 SSLContext에 우리의 키 스토어
    4. 에서 CA를 트러스트하는 TrustManager의 만들기 포함하는 키 스토어를 만들기 SSLContext의 SocketFactory를 사용하는 것

    코드 here를 찾을 수 있습니다.

  • +0

    예, 정확하게 따르는 단계이지만 여전히 오류가 발생합니다. – luisjar