Jea*_*ene 10
以下是配置Oracle JDBC瘦驱动程序以使用TLS v1.2连接到数据库的步骤(假设您的数据库配置正确).
步骤1:为bug 19030178应用补丁(不需要从12.2.0.1开始)
您将需要应用允许TLSv1.2的错误19030178的补丁.请注意,该修补程序允许TLSv1.2,但默认情况下不启用它.因此,使用12.1.0.2修补的驱动程序,您还需要设置oracle.net.ssl_version ='1.2'.可以将此属性设置为系统属性(使用-D)或通过数据源属性.
第2步:安装JCE文件
如果没有Java Cryptography Extension(JCE)文件,则不会启用强密码套件(例如TLS_RSA_WITH_AES_256_CBC_SHA256).因此,无论您使用的是JDK7还是JDK8,都应该安装JCE Unlimited Strength Jurisdiction Policy Files.这些文件可以在Oracle网站上找到.
第3步:始终使用JDK的最新更新
请务必使用JDK7或JDK8的最新更新,因为已修复TLSv1.2所需的错误.
第4步:使用JKS文件而不是钱包
看起来你已经完成了这个,但仅供其他人看到:钱包很难配置和使用Oracle JDBC瘦驱动程序,因为它们需要额外的jar和额外的属性.另一方面,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'
Run Code Online (Sandbox Code Playgroud)
====使用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'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6303 次 |
| 最近记录: |