আমার অনুরূপ ব্যবহারের কেস রয়েছে, যা টমক্যাট 7 কে কেবলমাত্র টিএলএসভি 1.2 কঠোরভাবে ব্যবহার করতে সক্ষম করবে, টিএসএলএসভি 1.1 বা এসএসএলভি 3 এর মতো এসএসএল প্রোটোকলগুলিতে ফিরে আসবে না।
আমি ব্যবহার করছি: সি: \ অ্যাপাচি-টমক্যাট -7.0.64-64 বিট এবং সি: \ জাভা 64 \ jdk1.8.0_60।
এই নির্দেশনা অনুসরণ করে: https://tomcat.apache.org/tomcat-7.0-doc/security-howto.html । টমকেট এসএসএল সমর্থন সেটআপ করার জন্য তুলনামূলকভাবে সহজ।
অনেকগুলি রেফারেন্স থেকে আমি অনেক সংমিশ্রণ পরীক্ষা করেছি, শেষ পর্যন্ত আমি এমন 1 টি পেয়েছি যা কেবলমাত্র টিএলএসভি 1.2 গ্রহণের জন্য টমক্যাট 7 প্রয়োগ করবে। স্পর্শ করার জন্য 2 টি জায়গা প্রয়োজন:
1) সি তে: \ অ্যাপাচি-টমক্যাট -7.0.64-64 বিট \ কনফ \ সার্ভার.এক্সএমএল
<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
= স্থানীয় স্ব-স্বাক্ষরিত ট্রাস্ট স্টোর
org.apache.coyote.http11.Http11Protocol
= জেএসএসআই বিআইও বাস্তবায়ন।
আমরা ব্যবহার করি না org.apache.coyote.http11.Http11AprProtocol
, কারণ এটি ওপেনসেল দ্বারা চালিত। অন্তর্নিহিত ওপেনসেল আগের এসএসএল প্রোটোকলগুলিকে সমর্থন করতে ফিরে আসবে।
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 সীমাবদ্ধতা প্রয়োজন, অন্যথায় টমক্যাট (যা জাভা 8 দ্বারা চালিত) আগের এসএসএল প্রোটোকলগুলিকে সমর্থন করতে ফিরে আসবে।
টমক্যাট শুরু করুন C:\apache-tomcat-7.0.64-64bit\bin\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
তারপরে, আমরা আমাদের সেটআপটি যাচাই করতে ওপেনসেল কমান্ড ব্যবহার করতে পারি। প্রথমে লোকালহোস্ট সংযুক্ত করুন: টিএলএসভি 1.1 প্রোটোকল দিয়ে 8443। টমক্যাট সার্ভার শংসাপত্রের সাথে জবাব দিতে অস্বীকার করেছে।
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
লোকালহোস্ট সংযুক্ত করুন: ৮৪৪৪ টি টিএলএসভি ১.২ প্রোটোকলের সাহায্যে টমক্যাট সার্ভারহেলোকে শংসাপত্রের সাথে জবাব দেয়:
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 অনুরোধের জন্য কঠোরভাবে প্রতিক্রিয়া জানাবে।