Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle Database TLS1.2 / SSL връзка с помощта на JDBC тънък и JKS

Ето стъпките, които трябва да следвате, за да конфигурирате тънкия драйвер на Oracle JDBC за свързване към базата данни с помощта на TLS v1.2 (ако приемем, че конфигурацията на вашата база данни е правилна).

Стъпка 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 Unlimited Strength. Тези файлове могат да бъдат намерени на уебсайта на Oracle.

Стъпка 3:Винаги използвайте най-новата актуализация на JDK

Не забравяйте да използвате най-новата актуализация на JDK7 или JDK8, защото са отстранени грешки, които са необходими за TLSv1.2.

Стъпка 4:Използвайте JKS файлове вместо портфейли

Изглежда, че вече сте го направили, но само за да видят другите:портфейлите са сложни за конфигуриране и използване с тънкия драйвер на Oracle JDBC, защото изискват допълнителни буркани и допълнителни свойства. JKS файловете, от друга страна, се поддържат естествено в JRE и според моя опит винаги са работили добре.

Стъпка 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'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Агрегация на низове на Oracle

  2. извличане на параметър от съхранената процедура?

  3. ORA 00904 Грешка:Невалиден идентификатор

  4. Генерирайте тестови данни с помощта на Oracle PL/SQL разработчик

  5. Как да създадете идентификатор с AUTO_INCREMENT на Oracle?