특정 웹 요청에 SSL 인증이 필요한 안드로이드 응용 프로그램을 작성 중입니다. 인증서 파일을 사용하여 키 저장소 파일을 만드는 방법에 대한 온라인 옵션과 달리 인증서를 json 응답의 문자열로 반환하는 초기 웹 요청을 만들어야합니다.안드로이드 - bks 키 저장소 용 pkcs12 인증서 문자열을 x509 인증서 개체로 변환
JSON 데이터는 다음과 같은 ... 포맷 (참고 : 다음과 같은 인증서가가 "..."실제 응답에 존재하지 않는, 단축) 나는이 값을 디코딩하고
"result":{
"pkcs12": "Ulv6GtdFbjzLeqlkelqwewlq822OrEPdH+zxKUkKGX/eN...9801asds3BCfu52dm7JHzPAOqWKaEwIgymlk="
},
을 Base64.deocode를 사용하여 바이트로 저장하려면 [다음
ssl.setPkcs12(Base64.decode(jsonObject.optString("pkcs12")));
내가 바이트를 사용하여 X509Certificate에를 만들기 위해 노력하고 있어요 []
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
InputStream in = new ByteArrayInputStream(ssl.getPkcs12());
X509Certificate cert = (X509Certificate) certFactory.generateCertificate(in);
내 코드는 내가 전혀 행운 간단한 문제가 보이는 것을 해결하기 위해 노력 많은 시간을 보냈습니다
"java.security.cert.CertificateException: org.apache.harmony.security.asn1.ASN1Exception: ASN.1 Sequence: mandatory value is missing at [4]".
으로 generateCertificate로() 메소드에 실패합니다. 어떤 도움이 굉장 할 것입니다! 다른 사람이 답을 필요로하는 경우에
여기에 인증서가 포함 된 JSON 응답을 붙여 넣을 수 있습니까? – emboss
"result": { "pkcs12": "Ulv6GtdFbjzLeqlkelqwewlq822OrEPdH + zxKUkKGX/eN ... 9801asds3BCfu52dm7JHzPAOqWKaEwIgymlk =" } – calebisstupid