2014-05-13 8 views
9

मैं ओएसजीआई सशर्त अनुमति तंत्र के साथ प्रयोग कर रहा हूं। अधिक विशेष रूप से, मैं org.osgi.service.condpermadmin.bundleSignerCondition का उपयोग करने की कोशिश कर रहा हूं ताकि किन बंडलों को प्रारंभ किया जा सके। प्रलेखन मैंने कहा है कि इस अनुमति का उपयोग करने के लिए, मुझे org.osgi.framework.trust.repositories फ्रेमवर्क कॉन्फ़िगरेशन प्रॉपर्टी का उपयोग कर जेकेएस कीस्टोरों के पथ को निर्दिष्ट करना होगा। हालांकि, वही दस्तावेज उल्लेख करता है कि इस संपत्ति में उल्लिखित जेकेएस में पासवर्ड नहीं होना चाहिए। तो सवाल यह है कि पासवर्ड के बिना जेकेएस कैसे बनाया जाए? Keytool उपयोगिता रिक्त पासवर्ड के साथ जेकेएस बनाने से मना कर दिया।क्या पासवर्ड के बिना जेकेएस कीस्टोर फ़ाइल बनाना संभव है?

उत्तर

14

आप थोड़ी देर से कीटोल के साथ रिक्त पासवर्ड के साथ एक कीस्टोर नहीं बना सकते हैं, लेकिन आप इसे प्रोग्रामेटिक रूप से भी कर सकते हैं।

इस तरह एक प्रमाणपत्र पढ़ें:

try { 
    // Reading the cert 
    Certificate cert = readCert("/tmp/cert.cert"); 

    // Creating an empty JKS keystore 
    KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType()); 
    keystore.load(null, null); 

    // Adding the cert to the keystore 
    keystore.setCertificateEntry("somecert", cert); 

    // Saving the keystore with a zero length password 
    FileOutputStream fout = new FileOutputStream("/tmp/keystore"); 
    keystore.store(fout, new char[0]); 
} catch (GeneralSecurityException | IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

भागो आदेश: से इस तरह खाली पासवर्ड के साथ कुंजीस्टोर बनाने

private static Certificate readCert(String path) throws IOException, CertificateException { 
    try (FileInputStream fin = new FileInputStream(path)) { 
     return CertificateFactory.getInstance("X.509").generateCertificate(fin); 
    } 
} 

keytool -list -keystore keystore 

यह के लिए पूछेंगे एक पासवर्ड लेकिन आप बस एक प्रविष्टि धक्का दे सकते हैं। आपको निम्नलिखित चेतावनी मिल जाएगी, लेकिन कीस्टोर की सामग्री सूचीबद्ध होगी:

***************** WARNING WARNING WARNING ***************** 
* The integrity of the information stored in your keystore * 
* has NOT been verified! In order to verify its integrity, * 
* you must provide your keystore password.     * 
***************** WARNING WARNING WARNING ***************** 

यह आपके लिए काम कर सकता है।

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