मैं जानना चाहता हूं कि अपाचे टॉमकैट टीएलएस v1.2 प्रोटोकॉल का समर्थन करता है या नहीं। मुझे इसके बारे में कोई दस्तावेज नहीं मिला! धन्यवाद!क्या टोमकैट टीएलएस v1.2 का समर्थन करता है?
उत्तर
टीएसएस संस्करण 1.2 जेएसएसई कार्यान्वयन में ओरेकल जेडीके संस्करण 7 द्वारा समर्थित है। चूंकि टोमकैट जेएसएसई को अंतर्निहित एसएसएल लाइब्रेरी के रूप में उपयोग करता है, इसे जेडीके संस्करण 1.7 के बाद से समर्थित किया जाना चाहिए। टॉमकैट में अपने सक्षम एसएसएल सिफर सुइट्स को भी देखें।
यदि आप प्रॉक्सी के रूप में अपाचे का उपयोग कर रहे हैं, तो कृपया अपाचे और अंतर्निहित ओपनएसएसएल दस्तावेज़ देखें।
कुछ लिंक:
http://docs.oracle.com/javase/7/docs/technotes/guides/security/enhancements-7.html (जावा SE 7 सुरक्षा संवर्द्धन)
मैं भी TLSv1.1 करने के लिए और नीचे में उल्लिखित sslProtocol उन्नत करने के लिए देख रहा था जावा 6 और जावा 7 पर लिंक
जावा 6 http://docs.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html Java7 http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html
SSLContext Java6 में समर्थित एसएसएल, TLSv1 कर रहे हैं और Java7 एसएसएल, TLSv1, TLSv1.1 और TLSv1.2 में समर्थित हैं।
तो, टॉमकैट में TLSv1.1 या TLSv1.2 को सक्षम करने के लिए, बस जावा 7 में अपग्रेड करें और टोमकैट के server.xml में कनेक्टर में एसएसएलप्रोटोकॉल बदलें।
जैसा कि अन्य लोगों ने बताया है, टोमकैट जेडीके 7+ में जेएसएसई के माध्यम से टीएलएसवी 1.2 का समर्थन करता है।
टॉमकैट टीएमएसवी 1.1 या टीएलएसवी 1.2 का समर्थन नहीं करता है जब टॉमकैट मूल (एपीआर) के साथ उपयोग किया जाता है। https://issues.apache.org/bugzilla/show_bug.cgi?id=53952 देखें।
अद्यतन: ऐसा लगता है कि TLSv1.2 अंततः टॉमकैट मूल 1.1.32 और टॉमकैट 8.0.15/7.0.57 में समर्थित होगा।
मेरे पास एक समान उपयोग केस है, जो कि टॉमकैट 7 को केवल टीएलएसवी 1.2 का सख्ती से उपयोग करने के लिए सक्षम बनाता है, जो पहले एसएसएल प्रोटोकॉल जैसे टीएलएसवी 1.1 या एसएसएलवी 3 पर वापस नहीं आ सकता है। निम्नलिखित चरण जवाब देंगे कि टॉमकैट को TLSv1.2 का समर्थन करने के लिए कैसे सक्षम किया जाए।
मैं उपयोग कर रहा हूं: सी: \ apache-tomcat-7.0.64-64bit और सी: \ Java64 \ jdk1.8.0_60।
इस निर्देश के बाद: https://tomcat.apache.org/tomcat-7.0-doc/security-howto.html। टॉमकैट एसएसएल समर्थन स्थापित करने के लिए अपेक्षाकृत सरल है।
कई संदर्भों से मैंने कई संयोजनों का परीक्षण किया, अंततः मुझे 1 मिला जो टॉमकैट 7 को केवल टीएलएसवी 1.2 स्वीकार करने के लिए लागू करेगा।
1) सी में:: \ अपाचे-बिल्ला-7.0.64-64bit \ conf \ server.xml
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="ssl/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="SSL" sslEnabledProtocols="TLSv1.2" />
जहां
keystoreFile = स्थानीय स्व-हस्ताक्षरित विश्वास 2 स्थानों को छूने के लिए की जरूरत स्टोर
org.apache.coyote.http11.Http11Protocol = JSSE बीआईओ कार्यान्वयन।
हम org.apache.coyote.http11.Http11AprProtocol का उपयोग नहीं है क्योंकि यह openssl द्वारा संचालित है है। अंतर्निहित ओपनएसएल पहले एसएसएल प्रोटोकॉल का समर्थन करने के लिए वापस आ जाएगा।
2) जब बिलाव शुरू, निम्नलिखित पर्यावरण मापदंडों सक्षम करें।
set JAVA_HOME=C:\Java64\jdk1.8.0_60
set PATH=%PATH%;C:\Java64\jdk1.8.0_60\bin
set CATALINA_HOME=C:\apache-tomcat-7.0.64-64bit
set JAVA_OPTS=-Djdk.tls.client.protocols="TLSv1.2" -Dsun.security.ssl.allowUnsafeRenegotiation=false -Dhttps.protocols="TLSv1.2"
JAVA_OPTS प्रतिबंध की आवश्यकता है, अन्यथा बिलाव (जो Java8 द्वारा संचालित है) पहले एसएसएल प्रोटोकॉल का समर्थन करना प्रारंभ कर देगा।
शुरूबिलाव C: \ अपाचे-बिल्ला-7.0.64-64bit \ बिन \ startup.bat
हम देख सकते हैं JAVA_OPTS बिलाव स्टार्टअप लॉग में प्रकट होता है।
Oct 16, 2015 4:10:17 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djdk.tls.client.protocols=TLSv1.2
Oct 16, 2015 4:10:17 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dsun.security.ssl.allowUnsafeRenegotiation=false
Oct 16, 2015 4:10:17 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dhttps.protocols=TLSv1.2
फिर, हम अपने सेटअप को सत्यापित करने के लिए openssl कमांड का उपयोग कर सकते हैं। पहले स्थानीयहोस्ट कनेक्ट करें: 8443 TLSv1.1 प्रोटोकॉल के साथ। टॉमकैट सर्वर प्रमाण पत्र के साथ जवाब देने से मना कर दिया।
C:\OpenSSL-Win32\bin>openssl s_client -connect localhost:8443 -tls1_1
Loading 'screen' into random state - done
CONNECTED(000001C0)
5372:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:.\ssl\s3_pkt.c:362:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 0 bytes
कनेक्ट स्थानीय होस्ट: 8443 TLSv1.2 प्रोटोकॉल के साथ, बिलाव प्रमाण पत्र के साथ उत्तर ServerHello:
C:\OpenSSL-Win32\bin>openssl s_client -connect localhost:8443 -tls1_2
Loading 'screen' into random state - done
CONNECTED(000001C0)
depth=1 C = US, ST = Washington, L = Seattle, O = getaCert - www.getacert.com
verify error:num=19:self signed certificate in certificate chain
---
Certificate chain
0 s:/C=SG/ST=SG/L=Singapore/O=Xxxx/OU=Development/CN=Myself
i:/C=US/ST=Washington/L=Seattle/O=getaCert - www.getacert.com
1 s:/C=US/ST=Washington/L=Seattle/O=getaCert - www.getacert.com
i:/C=US/ST=Washington/L=Seattle/O=getaCert - www.getacert.com
---
Server certificate
-----BEGIN CERTIFICATE-----
(ignored)
-----END CERTIFICATE-----
subject=/C=SG/ST=SG/L=Singapore/O=Xxxx/OU=Development/CN=Myself
issuer=/C=US/ST=Washington/L=Seattle/O=getaCert - www.getacert.com
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 2367 bytes and written 443 bytes
यह साबित होता है कि बिलाव अब सख्ती से केवल TLSv1.2 अनुरोध का जवाब।
बिलाव बिल्कुल टीएलएस समर्थन नहीं करता। यह या तो जावा (जेएसएसई के माध्यम से) या ओपनएसएसएल है जो इसका समर्थन करता है। वे जो टीएलएस का समर्थन करते हैं, वे किस संस्करण पर निर्भर करते हैं। आपका प्रश्न खराब गठित है। – EJP