TLS v1.2 का उपयोग करके डेटाबेस से कनेक्ट करने के लिए Oracle JDBC थिन ड्राइवर को कॉन्फ़िगर करने के लिए अनुसरण करने के चरण यहां दिए गए हैं (यह मानते हुए कि आपका डेटाबेस कॉन्फ़िगरेशन सही है)।
चरण 1:बग 19030178 के लिए पैच लागू करें (12.2.0.1 में शुरू करने की आवश्यकता नहीं है)
आपको बग 19030178 के लिए पैच लागू करना होगा जो TLSv1.2 की अनुमति देता है। ध्यान दें कि पैच TLSv1.2 की अनुमति देता है लेकिन डिफ़ॉल्ट रूप से इसे सक्षम नहीं करता है। तो 12.1.0.2 पैच ड्राइवर के साथ आपको oracle.net.ssl_version='1.2' भी सेट करना होगा। यह गुण या तो सिस्टम गुण के रूप में (-D का उपयोग करके) या डेटा स्रोत गुणों के माध्यम से सेट किया जा सकता है।
चरण 2:JCE फ़ाइलें इंस्टॉल करें
Java क्रिप्टोग्राफ़ी एक्सटेंशन (JCE) फ़ाइलों के बिना, सशक्त सिफर सुइट (उदाहरण के लिए TLS_RSA_WITH_AES_256_CBC_SHA256) सक्षम नहीं होंगे। तो चाहे आप JDK7 या JDK8 का उपयोग कर रहे हों, आपको JCE असीमित शक्ति क्षेत्राधिकार नीति फ़ाइलें स्थापित करनी चाहिए। ये फ़ाइलें Oracle वेबसाइट पर पाई जा सकती हैं।
चरण 3:हमेशा JDK के नवीनतम अपडेट का उपयोग करें
JDK7 या JDK8 के नवीनतम अपडेट का उपयोग करना सुनिश्चित करें क्योंकि बग्स को ठीक कर दिया गया है जो TLSv1.2 के लिए आवश्यक हैं।
चरण 4:वॉलेट के बजाय JKS फ़ाइलों का उपयोग करें
ऐसा लगता है कि आपने पहले ही ऐसा कर लिया है, लेकिन दूसरों के देखने के लिए:Oracle JDBC पतले ड्राइवर के साथ कॉन्फ़िगर करने और उपयोग करने के लिए वॉलेट जटिल हैं क्योंकि उन्हें अतिरिक्त जार और अतिरिक्त गुणों की आवश्यकता होती है। दूसरी ओर जेकेएस फाइलें जेआरई में मूल रूप से समर्थित हैं और, मेरे अनुभव में, हमेशा अच्छी तरह से काम किया है।
चरण 5:JDK7 का उपयोग करते समय, स्पष्ट रूप से सशक्त सिफर सुइट सक्षम करें
JDK8 का उपयोग करते समय इस चरण की आवश्यकता नहीं है। JDK7 के साथ, यदि आप TLS_RSA_WITH_AES_256_CBC_SHA256 जैसे मजबूत सिफर सूट का उपयोग कर रहे हैं, तो आपको इसे oracle.net.ssl_cipher_suites कनेक्शन प्रॉपर्टी के माध्यम से सक्षम करना होगा।
चरण 6:-Djavax.net.debug=all के साथ डीबग करें
अंत में यदि आप अधिक समस्याओं का सामना करते हैं, तो आप यह पता लगाने के लिए ट्रेसिंग चालू कर सकते हैं कि क्या हो रहा है -Djavax.net.debug=all।
====JDK7 और 12.1.0.2 पैच किए गए पतले ड्राइवर के साथ उदाहरण =====
java -Doracle.net.ssl_version='1.2' -Doracle.net.ssl_cipher_suites='(TLS_RSA_WITH_AES_256_CBC_SHA256)' -Doracle.net.ssl_server_dn_match='true' -Djavax.net.ssl.trustStore='truststore.jks' -Djavax.net.ssl.trustStorePassword='welcome1' -Djavax.net.ssl.keyStore='keystore.jks' -Djavax.net.ssl.keyStorePassword='welcome1' JDBCTest 'jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=host)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=myservice))(security=(ssl_server_cert_dn="CN=name,O=org,L=city,ST=state,C=country")))' 'pdb1' 'welcome1'
====JDK8 और 12.1.0.2 पैच किए गए पतले ड्राइवर के साथ उदाहरण =====
java -Doracle.net.ssl_version='1.2' -Doracle.net.ssl_server_dn_match='true' -Djavax.net.ssl.trustStore='truststore.jks' -Djavax.net.ssl.trustStorePassword='welcome1' -Djavax.net.ssl.keyStore='keystore.jks' -Djavax.net.ssl.keyStorePassword='welcome1' JDBCTest 'jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=host)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=myservice))(security=(ssl_server_cert_dn="CN=name,O=org,L=city,ST=state,C=country")))' 'pdb1' 'welcome1'