2013-06-06 5 views
7

मुझे रीडिंग प्रमाणपत्र जानकारी के साथ कोई समस्या है। मैं जावा प्रोग्रामिंग के साथ जावा का उपयोग करके पूर्ण जानकारी को पढ़ना चाहता हूं। अब, मैं सिर्फ सांत्वनापढ़ना pkcs12 प्रमाणपत्र जानकारी

>keytool -list -keystore 1.p12 -storetype pkcs12 -v 

कोई सुझाव में Keytool आदेश का उपयोग कर रहा हूँ?

+0

और आपने क्या प्रयास किया है? –

+1

मुझे आपके ध्यान के लिए धन्यवाद (नीचे) मिला है। –

उत्तर

35

मुझे समाधान मिला है, मुख्य विचार x509 पर प्रमाण पत्र डालना है, फिर विषय डीएन और पार्स मान प्राप्त करें।

public class TestClass { 
    public static void main(String[] args) throws Exception { 

     KeyStore p12 = KeyStore.getInstance("pkcs12"); 
     p12.load(new FileInputStream("pkcs.p12"), "password".toCharArray()); 
     Enumeration e = p12.aliases(); 
     while (e.hasMoreElements()) { 
      String alias = (String) e.nextElement(); 
      X509Certificate c = (X509Certificate) p12.getCertificate(alias); 
      Principal subject = c.getSubjectDN(); 
      String subjectArray[] = subject.toString().split(","); 
      for (String s : subjectArray) { 
       String[] str = s.trim().split("="); 
       String key = str[0]; 
       String value = str[1]; 
       System.out.println(key + " - " + value); 
      } 
     } 
    } 
} 
+3

बस java.security का उपयोग करना याद रखें। * Javax.security के बजाय कक्षाएं। * –

+0

हाय @DiegoPlentz यह कोड हमेशा काम नहीं करता है। मेरी मशीन पर, p12.getCertificate (उपनाम) शून्य वापस देता है। पीएफएक्स फ़ाइल openssl द्वारा "openssl pkcs12 -export -out 1.pfx -in server.crt -inkey server.key" के रूप में बनाई गई थी। मैंने आपके कोड को एक और पीएफएक्स फ़ाइल के साथ परीक्षण किया, जिसे विंडोज सर्टिफिकेट मैनेजर द्वारा निर्यात किया गया था, यह ठीक काम करता है। –

+0

यह मेरे लिए ठीक काम है लेकिन किसी को पता है कि डिवाइस पर .p12 फ़ाइल कैसे स्थापित करें? –

संबंधित मुद्दे