2010-09-10 15 views
31

से सर्वर प्रमाण जोड़ने के लिए जावा कीटोल आसान तरीका है मेरे पास एक स्वयं हस्ताक्षरित प्रमाण पत्र वाला सर्वर है, लेकिन क्लाइंट साइड प्रमाण प्रमाणीकरण की भी आवश्यकता है। मुझे कच्चे सीए सर्वर प्रमाण प्राप्त करने का प्रयास करने में कोई कठिन समय नहीं है, इसलिए मैं इसे एक कीस्टोर में आयात कर सकता हूं। किसी को भी आसानी से ऐसा करने के बारे में कुछ सुझाव हैं? धन्यवाद।यूआरएल/पोर्ट

उत्तर

4

आप फ़ायरफ़ॉक्स का उपयोग करके प्रमाणपत्र निर्यात कर सकते हैं, this site में निर्देश हैं। फिर आप प्रमाणपत्र जोड़ने के लिए keytool का उपयोग करें।

18

कुछ तरीके हैं जिन्हें मैं यह कर पाया थे:

  • फ़ायरफ़ॉक्स: अपवाद जोड़ें -> प्रमाणपत्र प्राप्त करें -> देखें -> विवरण -> निर्यात करें ...
  • कीमेन (http://www.alphaworks.ibm.com/tech/keyman) आप कर सकते हैं फ़ाइल से सीधे एसएसएल प्रमाणपत्र प्राप्त करें -> आयात मेनू
  • InstallCert (Code by Andreas Sterbenz)
 
    java InstallCert [host]:[port] 
    keytool -exportcert -keystore jssecacerts -storepass changeit -file output.cert 
    keytool -importcert -keystore [DESTINATION_KEYSTORE] -file output.cert 
+0

मैंने पहले भी एंड्रियास Sterbenz के InstallCert वर्ग का उपयोग किया है, अपनी उपयोगी यदि आप एक मेजबान के लिए एक प्रमाण पत्र जो स्वीकार नहीं करता HTTP GET अनुरोध करता –

+0

धन्यवाद wuntee की जरूरत है, यह मदद की मुझे बहुत कुछ, क्योंकि मुझे यहां स्टॉक मिला: http://stackoverflow.com/questions/9210514/unable-to-find-valid-certification-path-to-requested-target-error-even-after-c: डी ty –

59

था जेनकिन्स क्ली का उपयोग करते समय प्रमाण पत्र पर भरोसा कैसे करें, और https://issues.jenkins-ci.org/browse/JENKINS-12629 मिला जिसके लिए इसके लिए कुछ नुस्खा है।

यह आपको प्रमाण पत्र दे देंगे:

openssl s_client -connect ${HOST}:${PORT} </dev/null 

अगर आप केवल प्रमाण पत्र हिस्से में रुचि रखते हैं, यह करने के लिए यह पाइप से बाहर काट:

| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' 

और एक फ़ाइल को अनुप्रेषित:

> ${HOST}.cert 

फिर keytool का उपयोग करके इसे आयात करें:

keytool -import -noprompt -trustcacerts -alias ${HOST} -file ${HOST}.cert \ 
    -keystore ${KEYSTOREFILE} -storepass ${KEYSTOREPASS} 

एक ही बार में:

HOST=myhost.example.com 
PORT=443 
KEYSTOREFILE=dest_keystore 
KEYSTOREPASS=changeme 

# get the SSL certificate 
openssl s_client -connect ${HOST}:${PORT} </dev/null \ 
    | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ${HOST}.cert 

# create a keystore and import certificate 
keytool -import -noprompt -trustcacerts \ 
    -alias ${HOST} -file ${HOST}.cert \ 
    -keystore ${KEYSTOREFILE} -storepass ${KEYSTOREPASS} 

# verify we've got it. 
keytool -list -v -keystore ${KEYSTOREFILE} -storepass ${KEYSTOREPASS} -alias ${HOST} 
+0

क्या मैं HOST = *। Example.com डाल सकता हूं? –