sql >> Database teknologi >  >> RDS >> Oracle

Oracle Database TLS1.2 / SSL-forbindelse ved hjælp af JDBC tynd og JKS

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'



  1. Brug af udvidede hændelser til at logge forældede funktioner, der bruges i en SQL Server-instans (T-SQL-eksempel)

  2. Hvilke brancher har størst gavn af adgang?

  3. Kan ikke oprette en forekomst af OLE DB-udbyderfejl som Windows-godkendelsesbruger

  4. PowerManager.PARTIAL_WAKE_LOCK android