Bazı web istekleri için SSL sertifikası gerektiren bir android uygulaması yazıyorum. Sertifika dosyalarını cert dosyasını kullanarak çevrimiçi olarak gördüğüm seçeneklerden farklı olarak, sertifikayı json yanıtında bir dize olarak döndüren bir ilk web isteği yapmalıyım.Android - pkcs12 sertifika dize için x610 sertifika nesnesini dönüştürme bks keystore için
JSON verileri aşağıdaki gibi ... biçimlendirilir (not: Aşağıdaki sertifika "..." gerçek bir yanıt yok, kısaltılır) Bu değeri çözmesi am
"result":{
"pkcs12": "Ulv6GtdFbjzLeqlkelqwewlq822OrEPdH+zxKUkKGX/eN...9801asds3BCfu52dm7JHzPAOqWKaEwIgymlk="
},
Base64.deocode kullanarak bir byte olarak kaydetmek için [] Sonra
ssl.setPkcs12(Base64.decode(jsonObject.optString("pkcs12")));
Ben bayt kullanarak bir X509Certificate oluşturmaya çalışıyorum []
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
InputStream in = new ByteArrayInputStream(ssl.getPkcs12());
X509Certificate cert = (X509Certificate) certFactory.generateCertificate(in);
Kodum ben hiç şans ile basit bir sorun gibi görünen düzeltmek için çalışırken zaman büyük bir geçirdim
"java.security.cert.CertificateException: org.apache.harmony.security.asn1.ASN1Exception: ASN.1 Sequence: mandatory value is missing at [4]".
ile generateCertificate() yöntemine başarısız oluyor. Herhangi bir yardım Muhteşem olacak! Başkasının cevabını ihtiyacı durumunda
Sertifikayı içeren JSON yanıtını buraya yapıştırabilir misiniz? – emboss
"sonuç": { "pkcs12": "Ulv6GtdFbjzLeqlkelqwewlq822OrEPdH + zxKUkKGX/eN ... 9801asds3BCfu52dm7JHzPAOqWKaEwIgymlk =" }, – calebisstupid