2009-03-19 16 views
9

मुझे विश्वास नहीं है कि मैं इस समस्या के खिलाफ दौड़ने वाला एकमात्र व्यक्ति हूं। मैं घंटों तक गुगल रहा हूं और कोई भाग्य नहीं है। जावा सुरक्षा प्रलेखन PKCS12 प्रमाण पत्र को पूरी तरह से संबोधित नहीं कर रहा है।एक्लिप्स के लिए उपयोगकर्ता विशिष्ट प्रमाणपत्रों का उपयोग करने के लिए जावा कैसे सेट करें?

मैं उपयोगकर्ता विशिष्ट PKCS12 प्रमाणपत्रों के लिए जावा सेट करने का प्रयास कर रहा हूं। अन्य चीजों के अलावा, इसका उपयोग किया जाएगा ताकि ग्रहण में, मैं एक ट्रैक सर्वर तक पहुंच सकूं जो प्रमाण पत्र के माध्यम से प्रमाणित है। मैं ग्रहण के लिए Trac Mylyn एकीकरण प्लगइन का उपयोग कर रहा हूँ।

यहाँ सेटअप है:

  • उपयोगकर्ता घर निर्देशिका में हैं/घर
  • बहुउपयोगकर्ता पर माउंट/केंद्रीय
  • प्रत्येक उपयोगकर्ता पर एक व्यक्तिगत प्रमाणपत्र है: ~/user.p12
  • पासवर्ड व्यक्तिगत प्रमाणपत्रों के लिए है: pass1234
  • उपयोगकर्ता पासवर्ड 0400 फ़ाइल में ~/password.txt
  • पर केवल पढ़ने के लिए ट्रस्ट स्टोर पर संग्रहीत किया जाता है सीए है पर:
  • truststore
  • JDK 1.6 /central/jdk_1.6.0
  • ग्रहण 3.4 पर /central/eclipse_3.4.0
  • JAVA_HOME = स्थापित पर स्थापित करने के लिए कोई पासवर्ड /central/ca.jks /central/jdk_1.6.0
  • JAVA_HOME JDK स्थान पर सेट है क्योंकि ग्रहण इस
  • ECLIPSE_HOME =/केन्द्रीय/eclipse_3.4.0
  • JRE $ JAVA_HOME/JRE
  • प्रत्येक उपयोगकर्ता पर रहता है की जरूरत है एक ~/.ja va.policy फ़ाइल
  • एक Trac https://trac.internal/trac
  • पर चल रहे सर्वर है Trac सर्वर प्रमाणपत्र

अब, मैं प्रत्येक उपयोगकर्ता के लिए बस कुछ फ़ाइल है कि वे खुद को संशोधित सक्षम होना चाहते हैं (का उपयोग कर प्रमाणित करता है की तरह ~/.java.policy फ़ाइल, उदाहरण के लिए), और केंद्रीय ग्रहण अनुप्रयोग लॉन्च करने और ट्रैक भंडार तक पहुंचने में सक्षम हो। काफी सरल लगता है।

अभी, एक ही रास्ता मैं काम करने के लिए इस प्राप्त कर सकते हैं $ ECLIPSE_HOME/eclipse.ini फ़ाइल को संपादित करने और जोड़ने

-Djavax.net.ssl.keyStore="/home/user/user.p12" 
-Djavax.net.ssl.keyStoreType="PKCS12" 
-Djavax.net.ssl.keyStorePassword="pass1234" 
-Djavax.net.ssl.trustStore="/central/ca.jks" 

ठीक है, कि काम करता है, लेकिन वहाँ इसके साथ दो समस्याएं हैं:

  • प्रत्येक उपयोगकर्ता को अपना स्वयं का स्थापित करना पड़ता है। (या उपयोगकर्ता फ़ाइल से पढ़ना ग्रहण कर सकते हैं?)
  • यह ग्रहण विशिष्ट है, मैं आखिरकार इसे जावा कॉन्फ़िगरेशन के रूप में रखना चाहता हूं।

इसके अलावा, मैं कुछ समय से याद है कि आप $ JAVA_HOME/JRE/lib/सुरक्षा/java.security फ़ाइल को संपादित और

keystore=/home/user/user.p12 
keystore.type=PKCS12 
keystore.password=pass1234 
truststore=/central/ca.jks 

जोड़ने लेकिन ग्रहण कि लेने के लिए प्रतीत नहीं होता कर सकते हैं अप। क्या ऐसा हो सकता है क्योंकि मेरा जावा_एचओएमई जेडीके को इंगित करता है, न कि जेडीके के घोंसले वाले जेआरई?

मैं Java PKCS#11 Reference संदर्भ निम्नलिखित गुण देखा है: keyStoreURL = "कोई नहीं" keyStoreType = "PKCS11" keyStorePasswordURL = some_pin_url

एक और संदर्भ मैंने देखा था कि कहा आप संपादित कर सकता है ~/.java.policy फ़ाइल में शामिल करने के लिए:

keyStore "file:///home/user/user.p12", "PKCS12", "SunJSSE"; 
keyStorePasswordUrl "file:///home/user/password.txt"; 

लेकिन यह भी उठाया नहीं जाता है। हो सकता है कि यह वास्तव में काम करता है और उसी कारण से पढ़ा नहीं जा रहा है java.security फ़ाइल काम नहीं करती है, या शायद यह बिल्कुल काम नहीं करती है।

कुछ सिस्टम गुण मैंने देखा है:

javax.net.ssl.keyStore="/home/user/user.p12" 
javax.net.ssl.keyStoreType="PKCS12" 
javax.net.ssl.keyStorePassword="password" 
javax.net.ssl.keyStoreProvider="SunJSSE" 
javax.net.ssl.trustStore="/home/user/ca.jks" 
javax.net.ssl.trustStoreType="JKS" 
javax.net.ssl.trustStorePassword="" 
javax.net.ssl.trustStoreProvider="Sun" 

तो, अभी, मुझे लगता है मैं प्रत्येक उपयोगकर्ता होने के लिए अपने स्वयं ग्रहण इंस्टॉल करने के लिए के साथ अटक कर रहा हूँ। मुझे पता है कि यह एक जटिल सेटअप की तरह लगता है, लेकिन यह वास्तव में प्रमाण पत्र सेटअप तक ग्रहण के साथ कुछ भी नहीं करना चाहिए ... यह वास्तव में उपयोगकर्ता विशिष्ट प्रमाणपत्रों के लिए जावा सेटअप है।

कोई विचार?

उत्तर

5

user-specific configuration का उपयोग करें।

निजी विन्यास क्षेत्र स्थान निर्धारित करना

एक निजी विन्यास क्षेत्र के लिए डिफ़ॉल्ट स्थान है:

उपयोगकर्ता के घर-निर्देशिका/.eclipse/< उत्पाद आईडी > _ < उत्पाद संस्करण >/विन्यास

उपयोगकर्ता घर डीआईआर उपयोगकर्ता द्वारा निर्धारित किया जाता है। जावा सिस्टम प्रॉपर्टी। उत्पाद आईडी और संस्करण Eclipse इंस्टॉल के तहत उत्पाद मार्कर फ़ाइल .eclipseproduct से प्राप्त किए जाते हैं।

0

आप एक फ़ाइल में उन सभी जानकारी स्टोर कर सकता है और इसे से पढ़ सकते हैं और का उपयोग कर कोड में एक चर सेट:

System.setProperty(...); 

मुझे पता है जब कि आपकी समस्या नहीं सुलझती हैं।

+0

कोई कोड नहीं है, यह सिर्फ ग्रहण प्लगइन्स है ताकि मैं ग्रहण के माध्यम से ट्रैक तक पहुंच सकूं। –

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

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