मेरे पास एक pkcs12 फ़ाइल है। मुझे https प्रोटोकॉल का उपयोग करके किसी वेबपृष्ठ से कनेक्ट करने के लिए इसका उपयोग करने की आवश्यकता है।जावा में एसएसएल का उपयोग कर एक सुरक्षित वेबसाइट से कैसे कनेक्ट करें pkcs12 फ़ाइल के साथ?
System.setProperty("javax.net.ssl.trustStore", "myTrustStore");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
System.setProperty("javax.net.ssl.keyStoreType", "pkcs12");
System.setProperty("javax.net.ssl.keyStore", "new_cert.p12");
System.setProperty("javax.net.ssl.keyStorePassword", "newpass");
मैं p12 (PKCS12) फ़ाइल है: मैं कुछ कोड जहां आदेश एक सुरक्षित वेब पेज से कनेक्ट करने में मैं निम्न सिस्टम गुण निर्धारित करने की आवश्यकता बारे में जाना। मुझे बस एक ट्रस्टस्टोर फ़ाइल चाहिए।
keytool -import -file C:/Cacert.der -keystore mytruststore
अब
openssl.exe pkcs12 -in c:/mykey.p12 -out c:/cert.txt -nokeys -clcerts
अब प्रमाणपत्र पीईएम फ़ाइल परिवर्तित der को
openssl.exe x509 -in c:/cert.txt -outform DER -out c:/CAcert.der
अब एक कीस्ट्रोक को der फ़ाइल जोड़ने मेरे पास है:
मैं का उपयोग कर प्रमाण पत्र निकाला ट्रस्टस्टोर, लेकिन जब मैं इसका उपयोग करता हूं, तो मुझे निम्न त्रुटि
मिलती हैException in thread "main" java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
अद्यतन: कुछ गुण को दूर करने और केवल "trustStore" स्थापित करने के बाद, "trustStorePassword" और "trustStoreType" संपत्ति, मैं निम्न अपवाद
java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
कृपया मदद मिल गया।
यदि आप स्टैक ट्रेस (स्टैक फ्रेम से जानकारी, केवल अपवाद संदेश नहीं) पोस्ट कर सकते हैं तो मैं इसे देख लूंगा। – erickson
जांच करने की एक और बात यह है कि आपका ट्रस्ट स्टोर स्थान सही ढंग से निर्दिष्ट किया गया है; अगर javax.net.ssl.trustStore निर्दिष्ट है लेकिन अस्तित्व में नहीं है, तो फ्लाई पर एक खाली ट्रस्ट स्टोर बनाया गया है। आपका नया त्रुटि संदेश ऐसा लगता है जैसे ऐसा हो सकता है। – erickson