2010-07-16 8 views
8

자체 서명 된 서버 인증서 (cert.pem)가 있고 Android 애플리케이션의 SSL 소켓에 사용할 수 있도록 설정해야합니다. 이상적으로 코드를 .jar 파일로 패키지화하고 외부 인증서 파일 (코드에 포함)이 필요하지 않도록하고 싶습니다.Android에서 SSL 소켓에 자체 서명 된 인증서를 사용하는 방법은 무엇입니까?

SSLContext sc = SSLContext.getInstance("TLS"); 
sc.init(null, new TrustManager [] { new MyTrustManager() }, new SecureRandom()); 

내가 정의의 KeyManager 또는 사용자 정의의 TrustManager에 인증서를 추가해야합니까 : 내가 원하는되지 않은 것을 모든 인증서를 받아 들일 수이 코드

? 내가 만난

하나의 문제는 안드로이드 JKS 키 저장소에 동의하지 않습니다 (KeyStore.getDefaultType() 반환 "BKS")입니다 : " java.security.KeyStoreException : 키 스토어 JKS 구현을 찾을 수 없습니다"

하나를 진행 방법에 대한 아이디어는 높이 평가 될 것입니다!

답변

13

예, 사용자 지정 KeyStore에 인증서를 추가해야합니다. 기본적으로 4 단계 프로세스입니다.

  1. 서버 인증서를 받으십시오.
  2. 응용 프로그램에서 원시 자원으로 키 저장소로 서버 인증서를 가져옵니다. 키 저장소 유형은 BKS 여야합니다.
  3. Java/Android 프로그램에 자신 만의 TrustManager를 만들어 SSLContext에 인증서를로드하십시오.
  4. SSL 연결에 해당 SSLContext를 사용하십시오.
    http://randomizedsort.blogspot.com/2010/09/step-to-step-guide-to-programming.html

    행운을 빕니다 :

자세한 지침 및 샘플 코드에 대한 링크를 참조하십시오.
Nehc

관련 문제