sql >> Database >  >> RDS >> Oracle

Oracle Database TLS1.2 / SSL-verbinding met JDBC thin en JKS

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'



  1. Oracle Converteer seconden naar uren:minuten:seconden

  2. PostgreSQL:hoe de plpythonu-extensie te installeren

  3. Hoe versier je je databaseschema?

  4. Hoe open je een SDF-bestand (SQL Server Compact Edition)?