Android 프로젝트를 개발 중입니다.PEM 인증서를 Android에 설치하는 올바른 방법
는 I는 PEM 인증서 문자열을 가지고
-----BEGIN CERTIFICATE-----
MIIEczCCA1ugAwIBAgIBADANBgkqhkiG9w0BAQQFAD..AkGA1UEBhMCR0Ix
EzARBgNVBAgTClNvbWUtU3RhdGUxFDASBgNVBAoTC0..0EgTHRkMTcwNQYD
VQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5IENlcn..XRpb24gQXV0aG9y
...MANY LINES...
It8una2gY4l2O//on88r5IWJlm1L0oA8e4fR2yrBHX..adsGeFKkyNrwGi/
7vQMfXdGsRrXNGRGnX+vWDZ3/zWI0joDtCkNnqEpVn..HoX
-----END CERTIFICATE-----
I 바이트 배열 PEM 문자열 상기 디코딩
(CERT_STR
라는 변수에 인증서 문자열 상기 할당)
byte[] pemBytes = Base64.decode(
CERT_STR.replaceAll("-----(BEGIN|END) CERTIFICATE-----", "")
.replaceAll("\n", "")
.getBytes("UTF-8"),
Base64.DEFAULT
);
I 다음 코드에 따라 PEM 인증서를 Android 휴대 전화에 프로그래밍 방식으로 설치해보세요.
,451,515,Intent intent = KeyChain.createInstallIntent();
// because my PEM only contains a certificate, no private key, so I use EXTRA_CERTIFICATE
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, pemBytes);// above PEM bytes
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
내가 그 윈도우의 "OK"버튼을 누르면 (안드로이드 7 장치) 내 코드를 실행하면 안드로이드 시스템 인증서 설치 응용 프로그램은, 내가 로그 다음있어, 창을 팝업 :
java.io.IOException: stream does not represent a PKCS12 key store
at com.android.org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi.engineLoad(PKCS12KeyStoreSpi.java:793)
at java.security.KeyStore.load(KeyStore.java:1247)
at com.android.certinstaller.CredentialHelper.loadPkcs12Internal(CredentialHelper.java:396)
at com.android.certinstaller.CredentialHelper.extractPkcs12Internal(CredentialHelper.java:364)
at com.android.certinstaller.CredentialHelper.extractPkcs12(CredentialHelper.java:354)
at com.android.certinstaller.CertInstaller$1.doInBackground(CertInstaller.java:328)
at com.android.certinstaller.CertInstaller$1.doInBackground(CertInstaller.java:327)
내 질문 : 나는 intent
에 EXTRA_CERTIFICATE & 세트에게 그것을 사용했다
, 나는 EXTRA_PKCS12를 사용하지만, NOT하고있는 로그에서, 안드로이드 SY 줄기는 PKCS # 12 키 저장소를 설치하려고한다고 생각합니다. 왜?
프로그래밍 방식으로 Android에 PEM 인증서를 설치하는 올바른 방법은 무엇입니까?
는'스트림이 PKCS12 키 store'에게 그것을 변환하지 어떤 이유를 나타내지 않는 것으로 보인다 수 있도록 안드로이드 CertInstaller 클래스를 포함하여 코드를 디버깅하는 것이 좋습니다 그러면 PKCS12로? –
하지만 안드로이드에 PEM을 설치하는 올바른 방법이 무엇인지 알고 싶습니다. 제 질문의 요지입니다. –
이것은 https://stackoverflow.com/questions/40464815/install-x509-certificate-programmatically-in-my-case – ozbek