2013-06-13 7 views
8

मेरे पास CA से सार्वजनिक प्रमाणपत्र है। मैं इस प्रमाणपत्र का उपयोग कर जावा एसएसएल कनेक्शन बनाना चाहता हूं। मैंने How can I use different certificates on specific connections? और Java SSL connection with self-signed certificate without copying complete keystore to client का संदर्भ दिया। इससे मैं समझता हूं कि मुझे प्रमाणपत्र को एक कीस्टोर में आयात करने की आवश्यकता है। हालांकि मुझे सीए से कोई कीस्टोर नहीं मिला है। मैंने एक कीस्टोर बनाया और इसे सार्वजनिक प्रमाणपत्र आयात करने की कोशिश की। जबाब और कीस्टोर में सार्वजनिक कुंजियां मेल नहीं खातेकिसी कुंजीस्टोर पर सार्वजनिक प्रमाणपत्र आयात करते समय त्रुटि

मैं सीए से एक कीस्ट्रोक की जरूरत है या मैंने कुछ गलत कर रहा हूँ कार्य करें:

Keytool त्रुटि: java.lang.Exception लेकिन तब मैं निम्नलिखित त्रुटि मिलती है?


कमान कुंजीस्टोर बनाने के लिए इस्तेमाल:

keytool -import -v -alias tomcat -file signed-cert.pem -keystore keystore.jks 
+0

क्या आप थोड़ा और विशिष्ट हो सकते हैं? कीस्टोर बनाने के लिए आप किस कमांड का उपयोग करते हैं और आप प्रमाण कैसे आयात करते हैं? –

+0

कमान कुंजीस्टोर बनाने के लिए: Keytool -genkey -alias बिल्ला -keyalg आरएसए -keystore keystore.jks कमान प्रमाणपत्र आयात करने के लिए: Keytool आयात -v -alias बिल्ला -file प्रवेश किए गए cert.pem -keystore कुंजीस्टोर। jks – DanMatlin

+0

@Zeutheus क्या आपको यह काम करने का कोई तरीका मिला? मुझे एक समान समस्या का सामना करना पड़ रहा है और उपर्युक्त मुद्दे का समाधान मदद मिलेगा। – themanwhosoldtheworld

उत्तर

5

मुझे लगता है कि आप ठीक ढंग से प्रक्रिया साइन इन प्रमाण पत्र का पालन नहीं कर रहे हैं:

keytool -genkey -alias tomcat -keyalg RSA -keystore keystore.jks 

कमान प्रमाणपत्र आयात करने के लिए इस्तेमाल किया। इस चर्चा https://forums.oracle.com/thread/1533940 चेकआउट उन्हें नीचे दिए गए चरणों का पालन करके ठीक से लागू करने के लिए:

  1. एक कीस्ट्रोक keytool -genkey -keyalg RSA -keystore test.keystore -validity 360

  2. तैयार करें (एक कीस्ट्रोक और एक कुंजी (डीसी) "MyKey" के उपनाम के साथ उत्पन्न करता है) बनाने के एक प्रमाणपत्र हस्ताक्षर अनुरोध (सीएसआर)। keytool -certreq -keyalg RSA -file test.csr -keystore test.keystore

  3. पर हस्ताक्षर किए प्रमाणपत्र उत्पन्न कर दिया था (यह एक पाठ सीएसआर फ़ाइल उत्पन्न): http://www.instantssl.com/ssl-certificate-support/csr_generation/ssl-certificate-index.html

  4. आयातित हस्ताक्षरित प्रमाणपत्र (CRLFs के लिए बाहर घड़ी है, तो चिपकाने चरण 3 से प्रमाणपत्र पर हस्ताक्षर किए) keytool -import -alias newkey -file <signed cert file> -keystore test.keystore (महत्वपूर्ण कि यह चरण 1 (जो "mykey" के लिए डिफ़ॉल्ट है) के लिए एक उपनाम है?

  5. क्लाइंट उपयोग के लिए सार्वजनिक कुंजी निर्यात करें keytool -export -alias mykey -file test.publickey -keystore test.keystore

सर्वर सिस्टम पर

  1. एक truststore keytool -genkey -keyalg RSA -keystore test.truststore -validity 360 (यह एक कीस्ट्रोक और एक कुंजी (डीसी) "MyKey" के उपनाम के साथ उत्पन्न करता है)

  2. बनाने
  3. आयात सार्वजनिक कुंजी - परीक्षण एसएसएल सोप सेवा के लिए ग्राहक keytool -import -file test.publickey -keystore test.truststore

के माध्यम से

समस्या उपनाम को 1 और 6 में डिफ़ॉल्ट रूप से "mykey" में दे रही थी। जब मैं बदल चरण 6 होने के लिए: keytool -genkey -alias testAlias -keyalg RSA -keystore test.truststore -validity 360

आप ऊपर चरण 7 का उपयोग कर आयात कर सकते हैं (हालांकि मैं "-alias apublickey" चरण 7 में जोड़ने के लिए किया था)। यह मेरे लिए काम किया।

3

आप keyStore explorer gui टूल का उपयोग करस्टोर/प्रमाणपत्र उत्पन्न करने और कुंजीस्टोर में प्रमाणपत्र आयात/निर्यात करने के लिए कर सकते हैं।

0

मुझे कीस्टोर में SSL प्रमाणपत्र आयात करते समय भी एक ही समस्या का सामना करना पड़ा। मेरे मामले में रूट सीए का प्रमाणपत्र श्रृंखला से गायब था। मैंने रूट प्रमाणपत्र को एक फ़ाइल में निर्यात किया और मैन्युअल रूप से कीस्टोर में आयात किया।

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