2012-07-03 14 views
12

आश्चर्य है कि कोई मुझे यह बता सकता है कि मैं इसे कैसे खराब कर रहा हूं! मेरे पास एक कुंजीटोल बनाया गया है जो थॉवे से एक प्राथमिक, माध्यमिक और एसएसएल प्रमाण कुंजीस्टोर बनाया गया है। मैंने मूल रूप से सीएसआर को ओपनएसएल के साथ बनाया, फिर दस्तावेज़ की प्रक्रिया का उपयोग करके निजी कुंजी को पीकेसीएस 12 में कीस्टोर में आयात करने के लिए परिवर्तित किया।टॉमकैट पर एसएसएल सर्टिफिकेट - एलियास नाम एक कुंजी की पहचान नहीं करता है

मेरा मानना ​​है कि मैं उन सब को कुंजीस्टोर ठीक करने के लिए आयात किया है (लेकिन स्पष्ट रूप से नहीं है!) लेकिन त्रुटि मैं बिलाव से हो रही है है: 'java.io.IOException उर्फ ​​नाम एक कुंजी प्रविष्टि की पहचान नहीं करता

JKS keyStore प्रदाता:

तो मैं एक keytool -list -keystore keystore.ks करना यह है कि क्या मैं keyStore प्रकार मिलता है रवि

अपना कुंजी 4 प्रविष्टियों

secondary, Jun 22, 2012, trustedCertEntry, 
Certificate fingerprint (MD5): EB:A3:71:66:38:5E:3E:F4:24:64:ED:97:52:E9:9F:1B 
tomcat, Jun 22, 2012, trustedCertEntry, 
Certificate fingerprint (MD5): EA:D0:43:F8:7F:D5:1C:4A:BA:A7:F4:64:A9:6A:A1:B0 
primary, Jun 22, 2012, trustedCertEntry, 
Certificate fingerprint (MD5): D6:6A:92:1C:83:BF:A2:AE:6F:99:5B:44:E7:C2:AB:2A 
1, Jul 2, 2012, PrivateKeyEntry, 
Certificate fingerprint (MD5): EA:D0:43:F8:7F:D5:1C:4A:BA:A7:F4:64:A9:6A:A1:B0 

मैं बहुत यकीन है कि मेरे बिलाव server.xml ठीक है कर रहा हूँ शामिल लेकिन यहां यह https कनेक्टर के लिए भी है:

<Connector port="443" 
    protocol="org.apache.coyote.http11.Http11Protocol" 
    maxHttpHeaderSize="8192" 
    SSLEnabled="true" 
    maxThreads="150" 
    minSpareThreads="25" 
    maxSpareThreads="75" 
    enableLookups="false" 
    disableUploadTimeout="true" 
    acceptCount="100" 
    scheme="https" 
    secure="true" 
    clientAuth="false" 
    sslProtocol="TLS" 
    URIEncoding="UTF-8" 
    keystorePass="xxxxxx" 
    keystoreFile="/keys/keystore.ks" 
    keyAlias="tomcat"/> 

कोई विचार? यह पहली बार है जब मैंने ऐसा किया है तो शायद कुछ गड़बड़ हो गया है?

साइट कुछ सुझाव :)

उत्तर

15

आप keytool साथ उर्फ ​​सूची है, अन्य नाम क्या प्रत्येक प्रविष्टि के लिए अल्पविराम से पहले है जानकर बहुत खुशी होगी बंदरगाह 80

पर ठीक काम करता है। यहां, आपके पास 4 प्रविष्टियां हैं: secondary, tomcat, primary और 1। केवल उपनाम 1 एक निजी कुंजी के लिए है।

(ध्यान दें कि आप एक PKCS # 12 फ़ाइल का उपयोग करने के बजाय सीधे keystoreType="PKCS12" का उपयोग कर सकते हैं।)

+0

आह ठीक है, मैं देखता हूं कि आपका क्या मतलब है। यह पहली बार एसएसएल कर रहा है, आपके पास कीस्टोर में डुप्लिकेट उपनाम नहीं हो सकता है, इसलिए यदि 'टोमकैट' थॉवे द्वारा प्रदान किया गया एसएसएल प्रमाण है, तो मेरा निजी नाम क्या है जिसका नाम है? और कौन सा सर्वर.एक्सएमएल इंगित करने के लिए है? आपकी मदद के लिए धन्यवाद, मैं इस पर अपने बालों को खींच रहा हूं। – G33kGrl

+0

थोड़ा प्रगति - उपनाम 1 (निजी कुंजी) का उपयोग करने के लिए server.xml सेट करें और अब कम से कम कनेक्टर उस बंदरगाह को सही तरीके से खोलता है। हालांकि मुझे प्रमाण पत्र त्रुटि मिल रही है "प्रमाणपत्र विश्वसनीय नहीं है क्योंकि कोई जारीकर्ता श्रृंखला प्रदान नहीं की गई थी" ... साजिश मोटाई ... – G33kGrl

+2

जब आप कोई प्रमाणपत्र आयात करते हैं, तो आपको इसे निजी कुंजी उपनाम के विरुद्ध आयात करना चाहिए (जो पहले से ही कीस्टोर में है), जैसा कि वर्णन किया गया है [यहां] (http://stackoverflow.com/a/9300727/372643)। ऐसा कहा जा रहा है, ऐसा लगता है कि आपके पास पहले से ही उस प्रमाणपत्र के साथ बनाई गई एक पीकेसीएस # 12 फ़ाइल है, इसलिए आप इसे सीधे उपयोग करने में सक्षम होना चाहिए। ऐसा लगता है कि आपने शायद PKCS # 12 फ़ाइल को सही ढंग से नहीं बनाया हो (क्या आपने अनुरोध के लिए उपयोग की जाने वाली निजी कुंजी का उपयोग किया था?)। आपने किन निर्देशों का पालन किया? – Bruno

0

मैंने पाया this page विशेष रूप से उपयोगी .. मेरे स्थिति domain.com द्वारा दिया एक Geotrust प्रमाणपत्र से था, जहां मैं केवल दो फ़ाइलों था : एक पाठ आधारित प्रमाणपत्र (x50 9) और एक पाठ आधारित निजी कुंजी। ये निर्देश और कनवर्टर क्लास फ़ाइल एक आकर्षण की तरह काम किया।

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