2010-06-29 5 views
8

मैं जावा और टॉमकैट में सुरक्षा के साथ खेल रहा था और मैं उस बिंदु पर आया जहां मैं उत्सुक था कि अंत में जेवीएम द्वारा कौन सी कीस्टोर/ट्रस्टस्टोर लोड किया गया था। भले ही मेरे पास अपना स्वयं का कीस्टोर बनाया गया था और टॉमकैट कॉन्फ़िगरेशन में, यह दोनों कीस्टोर और ट्रस्टोर के रूप में उपयोग किया गया था, वास्तविकता यह थी कि डिफ़ॉल्ट कैकर्ट फ़ाइल ट्रस्टस्टोर के रूप में लोड की गई थी (कीस्टोर के रूप में, मेरी फ़ाइल ठीक से उपयोग की गई थी)।कुंजीस्टोर का उदाहरण प्राप्त करें कि डिफ़ॉल्ट रूप से JVM लोड

मैं उस फ़ाइल का नाम प्राप्त करने का प्रयास कर रहा था जो JVM लोड करता है, लेकिन मुझे समाधान नहीं मिला है। मेरा विचार System.getProperty ("javax.net.ssl.keyStore") प्राप्त करना था, लेकिन इससे मुझे शून्य मिली। मैंने इसे कनेक्टर के माध्यम से और कमांड लाइन पैरामीटर -Djavax.net.ssl.keyStore = "फ़ाइल" के रूप में टॉमकैट के server.xml में सेट करने का प्रयास किया। मुझे यकीन है कि कमांड लाइन पैरामीटर सही ढंग से प्रदान किया गया था क्योंकि मैं एक ही स्थान पर जेएमएक्स पैरामीटर स्थापित कर रहा हूं।

br, मार्टिन

+0

कोई डिफ़ॉल्ट कुंजीस्टोर नहीं है। एक डिफ़ॉल्ट ट्रस्टस्टोर है, लेकिन इसका नाम उपलब्ध नहीं है। – EJP

उत्तर

1

क्या आप टॉमकैट 6 पर हैं?

मैं के रूप में

set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Djavax.net.ssl.keyStore="path-to-file" 

catalina.bat में इस सेटिंग की कोशिश की है और यह

इसके अलावा, आपके जानकारी के लिए System.getProperty("javax.net.ssl.keyStore") रूप में इस्तेमाल किया मेरी कोड में दर्शाता है, वहाँ एक Bugzilla on अन्य एसएसएल अनदेखा किया जा रहा था विशेषताओं जो 6.0.16 में तय किया गया था। कीस्टोर का विशेष रूप से उल्लेख नहीं किया गया है, लेकिन मेरा संस्करण 6.0.20 है और यह

+0

संस्करण मैंने कोशिश की 6.0.26 थी। जिस तरह से मैं पैरामीटर सेट कर रहा हूं वह सेटएव में JAVA_OPTS सेट करना है। (Sh | bat)। – Martin

4

काम करने के लिए फ़ाइल प्रकार से आप जो भी चाहते हैं उसे प्राप्त करने में सक्षम नहीं होंगे और keystore को कनेक्टर में सेट करना होगा सिस्टम संपत्ति पर बिल्कुल कोई प्रभाव नहीं है।

इसके अतिरिक्त, कीस्टोर, चाहे javax.net.ssl.keyStore संपत्ति से निर्दिष्ट है या तत्काल तत्काल है KeyManager और SSLContext के सेटअप का केवल एक हिस्सा है। (डिफ़ॉल्ट रूप से, अपाचे टॉमकैट फाइलों का उपयोग करेगा और अपेक्षाकृत सरल लोडिंग तंत्र का उपयोग करेगा, लेकिन टॉमकैट के SSLImplementation का उपयोग करके इसे कस्टमाइज़ करना भी संभव है।) यदि आप वास्तव में देखना चाहते हैं कि क्या लोड किया जा रहा है, तो मैं JSSE debugging flags, विशेष रूप से कुछ इस तरह:

-Djavax.net.debug=SSL,keymanager,trustmanager 

संपादित करें: मैं जोड़ने चाहिए (बिलाव के संदर्भ के बाहर) आम तौर पर कोई डिफ़ॉल्ट कीस्ट्रोक, केवल एक डिफ़ॉल्ट truststore नहीं है। टॉमकैट का JSSEImplementation डिफ़ॉल्ट रूप से System.getProperty("user.home") + "/.keystore" का उपयोग करता है।

+0

एक चीज़ जो टॉमकैट में भ्रमित हो सकती है वह है कि कीस्टोर फ़ाइल 'कीस्टोर' विशेषता का उपयोग करके कॉन्फ़िगर किया गया है जबकि ट्रस्टस्टोर फ़ाइल को 'ट्रस्टस्टोरफ़ाइल' विशेषता का उपयोग करके कॉन्फ़िगर किया गया है। – Bruno

+0

मेरे पास सूचीबद्ध सूचीबद्ध कॉन्फ़िगरेशन था, लेकिन विश्वसनीय प्रमाणपत्र जेआरई/lib/सुरक्षा में cacerts से लोड किए गए थे। कीस्टोरफ़ाइल = "conf/keystore.jks" truststoreFile = "conf/keystore.jks" – Martin

+0

'keystoreFile =' के बजाय 'keystore =' का उपयोग करने का प्रयास करें (लेकिन 'ट्रस्टस्टोरफ़ाइल' रखें)। – Bruno

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