Hier zijn de stappen die u moet volgen om de Oracle JDBC thin driver te configureren om verbinding te maken met de database via TLS v1.2 (ervan uitgaande dat uw databaseconfiguratie correct is).
Stap 1:patch toepassen voor bug 19030178 (niet nodig vanaf 12.2.0.1)
U moet de patch voor bug 19030178 toepassen die TLSv1.2 toestaat. Merk op dat de patch TLSv1.2 toestaat, maar niet standaard inschakelt. Dus met de 12.1.0.2 gepatchte driver moet je ook oracle.net.ssl_version='1.2' instellen. Deze eigenschap kan worden ingesteld als een systeemeigenschap (met -D) of via de gegevensbroneigenschappen.
Stap 2:installeer JCE-bestanden
Zonder de Java Cryptography Extension-bestanden (JCE) worden de sterke coderingssuites (bijvoorbeeld TLS_RSA_WITH_AES_256_CBC_SHA256) niet ingeschakeld. Dus of u nu JDK7 of JDK8 gebruikt, u moet de JCE Unlimited Strength Jurisdiction Policy Files installeren. Deze bestanden zijn te vinden op de Oracle-website.
Stap 3:Gebruik altijd de laatste update van de JDK
Zorg ervoor dat u de laatste update van JDK7 of JDK8 gebruikt, want er zijn bugs opgelost die vereist zijn voor TLSv1.2.
Stap 4:Gebruik JKS-bestanden in plaats van portefeuilles
Het lijkt erop dat je dat al hebt gedaan, maar alleen voor anderen om te zien:portefeuilles zijn ingewikkeld om te configureren en te gebruiken met de Oracle JDBC thin driver omdat ze extra jars en extra eigenschappen vereisen. JKS-bestanden daarentegen worden standaard ondersteund in de JRE en hebben naar mijn ervaring altijd goed gewerkt.
Stap 5:Schakel bij gebruik van JDK7 expliciet sterke coderingssuites in
Deze stap is niet vereist bij gebruik van JDK8. Als u met JDK7 een sterke coderingssuite gebruikt, zoals TLS_RSA_WITH_AES_256_CBC_SHA256, moet u deze inschakelen via de verbindingseigenschap oracle.net.ssl_cipher_suites.
Stap 6:debuggen met -Djavax.net.debug=all
Als u ten slotte meer problemen tegenkomt, kunt u tracering inschakelen om erachter te komen wat er aan de hand is met -Djavax.net.debug=all.
====VOORBEELD MET JDK7 EN DE 12.1.0.2 PATCHED THIN DRIVER =====
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'
====VOORBEELD MET JDK8 EN DE 12.1.0.2 GEPATCHEDE THIN DRIVER =====
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'