को अनदेखा करता है मैं एसएसएल पर एलडीएपी सर्वर से कनेक्ट करने के लिए टॉमकैट 6 के शीर्ष पर चलने वाला एप्लिकेशन प्राप्त करने का प्रयास कर रहा हूं।जावा कीस्टोर में आयातित प्रमाणपत्र, JVM नए प्रमाणपत्र
मैं का उपयोग कर KeyStore करने के लिए सर्वर का प्रमाणपत्र आयातित:
C:\Program Files\Java\jdk1.6.0_32\jre\lib\security>keytool -importcert -trustcacerts -file mycert -alias ca_alias -keystore "c:\Program Files\Java\jdk1.6.0_32\jre\lib\security\cacerts"
जब मैं बिलाव शुरू एसएसएल डिबगिंग के साथ चालू, लॉग बिलाव सही प्रमाणपत्र फ़ाइल उपयोग कर रहा है के अनुसार:
trustStore is: C:\Program Files\Java\jdk1.6.0_32\jre\lib\security\cacerts
हालांकि , टोमकैट मैंने जो प्रमाणपत्र आयात किया है, वह नहीं जोड़ता है - कैकर्ट फ़ाइल में अन्य सभी कर्ट लॉग पर मुद्रित होते हैं - और कनेक्शन विफल रहता है:
handling exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
टॉमकैट को पुनरारंभ करने से मदद नहीं मिलती है। मैंने keytool -list कमांड के साथ सत्यापित किया है कि नया प्रमाणपत्र वास्तव में फ़ाइल पर मौजूद है।
क्यों टोमकैट मेरे नए प्रमाण को अनदेखा कर रहा है?
संपादित करें:
लगता है कि इस मुद्दे को विंडोज 7 VirtualStore संपन्न हुई थी। कीटोल ने कैकरर्ट फ़ाइल की एक नई प्रति बनाई, और टोमकैट ने मूल फ़ाइल का उपयोग किया।
क्या फ़ाइल 'mycert' में संपूर्ण प्रमाणपत्र श्रृंखला है? जावा स्टोर में पूरा ट्रस्ट पथ होना चाहता है। – Romain
बस एक साधारण सुझाव, अपने 'सी: \ उपयोगकर्ता \ YourAccountName' पर जाएं, फ़ाइल नाम' .keystore' वहां होगा, इसे खोलें और उस से अपना पिछला एक हटा दें, और उसके बाद आपने जो किया वह करें।उम्मीद है कि चीजों को आपके लिए हल कर देगा :-) –
@ रोमेन नहीं, एक विश्वसनीय प्रमाणपत्र के पास श्रृंखला के साथ कुछ लेना देना नहीं है। एक विश्वसनीय प्रमाण पत्र के रूप में आयात किया गया कोई प्रमाणपत्र एक विश्वसनीय रूट प्रमाणपत्र की तरह माना जाता है। – emboss