Her er de trin, du skal følge for at konfigurere den tynde Oracle JDBC-driver til at oprette forbindelse til databasen ved hjælp af TLS v1.2 (forudsat at din databasekonfiguration er korrekt).
Trin 1:Anvend patch til fejl 19030178 (ikke nødvendigt fra 12.2.0.1)
Du bliver nødt til at anvende patchen til fejl 19030178, som tillader TLSv1.2. Bemærk, at patchen tillader TLSv1.2, men aktiverer den ikke som standard. Så med den 12.1.0.2 patchede driver skal du også indstille oracle.net.ssl_version='1.2'. Denne egenskab kan indstilles enten som en systemegenskab (ved hjælp af -D) eller via datakildeegenskaberne.
Trin 2:Installer JCE-filer
Uden Java Cryptography Extension-filerne (JCE) vil de stærke krypteringspakker (for eksempel TLS_RSA_WITH_AES_256_CBC_SHA256) ikke blive aktiveret. Så uanset om du bruger JDK7 eller JDK8, bør du installere JCE Unlimited Strength Jurisdiction Policy Files. Disse filer kan findes på Oracle-webstedet.
Trin 3:Brug altid den seneste opdatering af JDK
Sørg for at bruge den seneste opdatering af enten JDK7 eller JDK8, fordi der er rettet fejl, der er nødvendige for TLSv1.2.
Trin 4:Brug JKS-filer i stedet for tegnebøger
Det ser ud til, at du allerede har gjort det, men bare for andre at se:tegnebøger er komplicerede at konfigurere og bruge med den tynde Oracle JDBC-driver, fordi de kræver ekstra krukker og ekstra egenskaber. JKS-filer på den anden side understøttes indbygget i JRE og har efter min erfaring altid fungeret godt.
Trin 5:Når du bruger JDK7, skal du udtrykkeligt aktivere stærke krypteringspakker
Dette trin er ikke påkrævet, når du bruger JDK8. Med JDK7, hvis du bruger en stærk krypteringspakke, såsom TLS_RSA_WITH_AES_256_CBC_SHA256, skal du aktivere den via forbindelsesegenskaben oracle.net.ssl_cipher_suites.
Trin 6:Fejlfinding med -Djavax.net.debug=all
Endelig, hvis du støder på flere problemer, kan du aktivere sporing for at finde ud af, hvad der sker ved hjælp af -Djavax.net.debug=all.
====EKSEMPEL MED JDK7 OG DEN 12.1.0.2 PATCHED TYND 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'
====EKSEMPEL MED JDK8 OG DEN 12.1.0.2 PATCHED TYND 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'