0
자체 서명 된 클라이언트 및 서버 인증서를 사용하여 Android의 HttpClient
을 통해 HTTPS 웹 서버에 연결하려고합니다. cert와 개인 키는 모두 PKCS # 12 키 스토어에 저장됩니다.자체 서명 된 인증서가있는 HTTPS가 핸드 셰이크 오류를 발생합니다.
나는 키 스토어를로드의 차이 this example을 사용하고 있습니다 :
KeyStore trustStore = KeyStore.getInstance("PKCS12");
trustStore.load(new FileInputStream(keystoreFile), "mypass".toCharArray());
키 스토어로드를 제대로 내가 모든 인증서 표시를 나열 할 수 있어요한다. GET 요청을 실행할 때
는하지만, 내가 얻을 : 나는 OS 2.2 OS 2.3.4와 HTC 디자 이어와 넥서스 S에이를 테스트하고 또한 OS 2.1 에뮬레이터있어
09-07 22:01:05.197: ERROR/TTT(3716): IOException: java.io.IOException:
SSL handshake failure: Failure in SSL library, usually a protocol error
error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
(external/openssl/ssl/s3_pkt.c:1127 0x2e3b40:0x00000003)
. 그것들은 모두 같은 오류를냅니다. s3_pkt.c:1053을 보았지만 문제가 무엇인지 이해할 수 없었습니다.
아이디어가 있으십니까?
저는 전문가는 아니지만 java.security.Keystore에 모든 인증서와 개인 키가 포함될 수 있습니다. http://download.oracle.com/javase/6/docs/api/java/security /KeyStore.html –
PKCS # 12 파일 (.p12)에서로드 된 키 저장소가 확실합니다. 모든 항목이 나열되어 있으며 개인 키, CA 인증서 및 사용자 인증서가 있습니다. "truststore"는 원래 예제의 변수 이름입니다. –
+1 당신이 옳았다 : 나는 키 스토어와 별도로 트러스트 스토어를 설정해야한다. 두 파일은 같은 파일이지만 두 번 설정해야합니다. –