स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग करके कीस्टोर और ट्रस्टस्टोर कैसे बनाएं?


18

हमारे पास जेएवीए सर्वर और क्लाइंट एसएसएल का उपयोग कर एक नेटवर्क पर संवाद है। सर्टिफिकेट का उपयोग करके सर्वर और क्लाइंट परस्पर एक दूसरे को प्रमाणित करते हैं। सर्वर और क्लाइंट द्वारा उपयोग किया जाने वाला कीस्टोर प्रकार JKS है। सर्वर और क्लाइंट उनकी कीस्टोर और ट्रस्टस्टोर फ़ाइलों को लोड करते हैं। कीस्टोर और ट्रस्टस्टोर फ़ाइल नाम इस प्रकार हैं: server.keystore, server.truststore, client.keystore, और client.truststore। मैं केवल परीक्षण के लिए स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग कर रहा हूं।

प्रशन:

Q1। मैं जानना चाहूंगा कि मुझे चरण 6 में सर्वर और क्लाइंट के स्वयं के प्रमाणपत्र को अपने संबंधित ट्रस्टस्टोर्स में जोड़ने की आवश्यकता क्यों है।

Q2। क्या मैं एक ही चीज़ को प्राप्त करने के लिए संख्या चरणों को कम कर सकता हूं? यदि हाँ, तो कैसे?

सर्वर के लिए आरएसए कुंजी, स्व-हस्ताक्षरित प्रमाण पत्र, कीस्टोर और ट्रस्टस्टोर बनाने के लिए कदम

  1. एक निजी RSA कुंजी उत्पन्न करें

    openssl genrsa -out diagserverCA.key 2048
    
  2. एक X509 प्रमाणपत्र बनाएं

    openssl req -x509 -new -nodes -key diagserverCA.key \
                -sha256 -days 1024 -out diagserverCA.pem
    
  3. निजी कुंजी और सार्वजनिक प्रमाणपत्र से PKCS12 कीस्टस्टोर बनाएं।

    openssl pkcs12 -export -name server-cert \
                   -in diagserverCA.pem -inkey diagserverCA.key \
                   -out serverkeystore.p12
    
  4. पीकेसीएस 12 कीस्टोर को जेकेएस कीस्टोर में परिवर्तित करें

    keytool -importkeystore -destkeystore server.keystore \
            -srckeystore serverkeystore.p12 -srcstoretype pkcs12 
            -alias server-cert
    
  5. क्लाइंट के प्रमाणपत्र को सर्वर के ट्रस्ट स्टोर में आयात करें।

    keytool -import -alias client-cert \
            -file diagclientCA.pem -keystore server.truststore
    
  6. सर्वर के ट्रस्ट स्टोर में सर्वर के प्रमाणपत्र को आयात करें।

    keytool -import -alias server-cert \
            -file diagserverCA.pem -keystore server.truststore
    

आरएसए निजी कुंजी, स्व-हस्ताक्षरित प्रमाण पत्र, कीस्टोर और क्लाइंट के लिए ट्रस्टस्टोर बनाने के लिए कदम

  1. एक निजी कुंजी उत्पन्न करें

    openssl genrsa -out diagclientCA.key 2048
    
  2. एक X509 प्रमाणपत्र बनाएं

    openssl req -x509 -new -nodes -key diagclientCA.key \
                -sha256 -days 1024 -out diagclientCA.pem
    
  3. निजी कुंजी और सार्वजनिक प्रमाण पत्र से PKCS12 कीस्टस्टोर बनाएं।

    openssl pkcs12 -export -name client-cert \
                   -in diagclientCA.pem -inkey diagclientCA.key \
                   -out clientkeystore.p12
    
  4. एक पीकेसीएस 12 कीस्टोर को जेकेएस कीस्टोर में परिवर्तित करें

    keytool -importkeystore -destkeystore client.keystore \
            -srckeystore clientkeystore.p12 -srcstoretype pkcs12 \
            -alias client-cert
    
  5. क्लाइंट के ट्रस्ट स्टोर में सर्वर का प्रमाणपत्र आयात करें।

    keytool -import -alias server-cert -file diagserverCA.pem \
            -keystore client.truststore
    
  6. ग्राहक के विश्वास स्टोर में ग्राहक का प्रमाणपत्र आयात करें।

    keytool -import -alias client-cert -file diagclientCA.pem \
            -keystore client.truststore
    

जवाबों:


3

सामान्य https के लिए केवल 1 कमांड की आवश्यकता होती है;

keytool -genkeypair

अगर क्लाइंट किसी भी सर्टिफिकेट पर आंख मूंदकर भरोसा नहीं कर रहा है, तो आपको क्लाइंट को अपने सर्वर पब्लिक सर्टिफिकेट को कॉपी करने की जरूरत है।

आप ओप्सनल का उपयोग क्यों कर रहे हैं?

https://docs.oracle.com/javase/10/tools/keytool.htm


जब तक मेरे संपादन की समीक्षा नहीं हो जाती, तब तक: ध्वज-उत्पत्ति चिह्न है और आप प्रमाणपत्र को अनुकूलित करने के लिए बहुत सारे अलग-अलग झंडे जोड़ सकते हैं (उदाहरण के लिए -validity 365 या -dname "cn = Mark Jones, ou = JavaSoft, o = Sun, c = US ")। अधिक विवरण के लिए उत्तर में लिंक देखें।
जोहान्स स्टैडलर

1
@JohannesStadler धन्यवाद मैंने आपके संपादन को मंजूरी दे दी और नवीनतम जावा संस्करण के लिंक को अपडेट किया, ध्यान दें कि "इस कमांड का नाम पिछले रिलीज में -Kenkey था"
user1133275
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.