আমার অনুরূপ ব্যবহারের কেস রয়েছে, যা টমক্যাট 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 অনুরোধের জন্য কঠোরভাবে প্রতিক্রিয়া জানাবে।