2013-11-25 10 views
6

इन दो उत्तरों (1) (2) के अनुसार सर्वर नाम संकेत (एसएनआई) का उपयोग कर एक ही tomcatserver से दो एसएसएल प्रमाण पत्र सेवा करना संभव है।कैसे टोटोक एसएनआई का उपयोग कर दो एसएसएल प्रमाण पत्र की सेवा करता है?

मेरा प्रश्न तब है, इसे कैसे सेट करें? मैं दो वर्चुअल होस्ट सेट कर सकता हूं लेकिन मेरे पास अभी भी एक कनेक्टर है जो क्लाइंट को निर्दिष्ट एसएसएल प्रमाण पत्र प्रस्तुत करता है। कनेक्टर में एक प्रमाण पत्र के लिए उपयोग करने के लिए कुंजी संग्रह और उर्फ ​​निर्दिष्ट कर सकते हैं लेकिन कोई पैरामीटर कह जो आभासी होस्ट के लिए इस कनेक्टर है या जो प्रमाण पत्र के लिए वह इस्तेमाल किया डोमेन के अनुसार ग्राहक के लिए प्रस्तुत करना चाहिए है।

मैं एसएमआई का उपयोग करते समय एसएसएल प्रमाण पत्र (या अधिक सही कौन सा कुंजीस्टोर) होना चाहिए, उसे टोमकैट कैसे बता सकता हूं?

(1) https://stackoverflow.com/a/10173447 (2) https://stackoverflow.com/a/6343059

उत्तर

14

आप उन सवाल का जवाब फिर से पढ़ने की जरूरत है। एसएनआई जावा 8 तक सर्वर की तरफ समर्थित नहीं है। टॉमकैट 8 का न्यूनतम जावा संस्करण जावा 7 है, इसलिए फिलहाल मुझे टॉमकैट में कोई एसएनआई समर्थन नहीं है।

यह वैकल्पिक रूप से करने के लिए समर्थन SNI संभव हो सकता है अगर बिलाव जावा 8 पर बाद में चल रहा है या लेकिन यह है कि बिलाव में कोड में परिवर्तन जिसके लिए वर्तमान में कोई योजना नहीं है की आवश्यकता होगी।

दिसंबर 2014 के रूप में अद्यतन:

जोड़ना SNI समर्थन बिलाव 9. लिए TODO सूची में है TODO सूची काफी लंबी है और SNI वर्तमान सूची के शीर्ष पर नहीं है यही कारण है कि। हमेशा के रूप में पैच स्वागत है।

एक बार SNI बिलाव 9 में कार्यान्वित किया जाता यह संभव है SNI समर्थन बिलाव 7 और बिलाव 8. वापस करने के लिए-पोर्ट फिर से, स्वागत समझौता हो सकता है।

जून 2015 के रूप में अद्यतन:

SNI बिलाव 9. के लिए लागू किया गया है यह सब तीन HTTP कनेक्टर कार्यान्वयन (NIO, NIO2 और अप्रैल/देशी) द्वारा समर्थित है। एनआईओ या एनआईओ 2 के साथ एसएनआई का उपयोग करने के लिए आपको स्रोत से टॉमकैट 9 (ए.के.ए. ट्रंक) संकलित करने की आवश्यकता होगी। अप्रैल/देशी साथ SNI उपयोग करने के लिए आप भी टीसी देशी ट्रंक (नहीं वर्तमान में बिलाव के द्वारा प्रयोग किया 1.1.x शाखा विज्ञप्ति) संकलित करने के लिए की आवश्यकता होगी।

एसएनआई का समर्थन करने के लिए टीएलएस कॉन्फ़िगरेशन में काफी बदलाव आया है। विवरण डॉक्स वेब अनुप्रयोग में होगा एक बार आपको नवंबर 2016 के रूप में निर्माण बिलाव 9.

अद्यतन है:

SNI समर्थन बिलाव 8.5.x. में शामिल है यह असंभव है कि इसे आगे पीछे रखा जाएगा। यानी यह 8.0.x या 7.0.x पर बनाने की संभावना नहीं है।

+0

क्या इस पर कोई प्रगति हुई है, या क्या आपका उत्तर अभी भी आज जैसा मामला है? – stepanian

+0

उत्तर अद्यतन किया गया। –

+0

अद्यतन के लिए धन्यवाद। यदि Google सबकुछ के लिए एसएसएल को धक्का दे रहा है, तो यह उन लोगों के लिए अधिक महत्वपूर्ण हो जाएगा जो एसएसएल की आवश्यकता वाले प्रत्येक साइट के लिए एक नया एडब्ल्यूएस सर्वर उदाहरण बनाने के लिए बहुत खराब हैं :) – stepanian

1

आप (दोनों SNI का समर्थन करता है) स्थापित कर सकता बिल्ला के सामने nginx/haproxy और वे प्रॉक्सी के रूप में कार्य करेगा।

+0

वास्तव में http://arstechnica.com/information-technology/2015/ पर हैप्रोक्सी के लिए ऐसा करने पर एक उचित अच्छा ट्यूटोरियल है 05/वेब-सेवा-कैसे-करने-बनाने-आपकी साइट-सभी-https-all-the-time-for-everyone/ – idarwin

3

आप सेटअप कई ssl नीचे विन्यास का उपयोग कर प्रमाण पत्र दे सकता है:

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" 
       maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="domain1"> 
     <SSLHostConfig hostName="domain1" > 
      <Certificate certificateKeystoreFile="conf/domain1-keystore.jks" certificateKeystorePassword="dom1keystorepwd" 
         certificateKeyPassword="dom1keypwd" 
         type="RSA" /> 
     </SSLHostConfig> 
     <SSLHostConfig hostName="domain2" > 
      <Certificate certificateKeystoreFile="conf/domain2-keystore.jks" certificateKeystorePassword="dom2keystorepwd" 
         certificateKeyPassword="dom2keypwd" 
         type="RSA" /> 
     </SSLHostConfig> 
    </Connector> 

अपने आवश्यकता के अनुसार प्रोटोकॉल दें। आप jsse के बजाय openssl का उपयोग करके कॉन्फ़िगर भी कर सकते हैं। https://tomcat.apache.org/tomcat-8.5-doc/config/http.html#SSL_Support_-_SSLHostConfig और सहायता के लिए

भी, defaultSSLHostConfigName बहुत महत्वपूर्ण है अन्यथा यह काम नहीं करेगा। डिफ़ॉल्ट रूप से किसी एक डोमेन का चयन करें।

+0

संकेत के लिए धन्यवाद। डिफ़ॉल्टएसएसLostConfigName के बिना काम नहीं करता है – MitchBroadhead

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

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