Estos son los pasos a seguir para configurar el controlador delgado Oracle JDBC para conectarse a la base de datos mediante TLS v1.2 (suponiendo que la configuración de su base de datos sea correcta).
Paso 1:aplique el parche para el error 19030178 (no es necesario a partir de 12.2.0.1)
Deberá aplicar el parche para el error 19030178 que permite TLSv1.2. Tenga en cuenta que el parche permite TLSv1.2 pero no lo habilita de manera predeterminada. Entonces, con el controlador parcheado 12.1.0.2, también debe configurar oracle.net.ssl_version='1.2'. Esta propiedad se puede establecer como una propiedad del sistema (usando -D) o a través de las propiedades de la fuente de datos.
Paso 2:Instalar archivos JCE
Sin los archivos de Java Cryptography Extension (JCE), los conjuntos de cifrado seguro (por ejemplo, TLS_RSA_WITH_AES_256_CBC_SHA256) no estarán habilitados. Entonces, ya sea que esté utilizando JDK7 o JDK8, debe instalar los archivos de política de jurisdicción de fuerza ilimitada de JCE. Estos archivos se pueden encontrar en el sitio web de Oracle.
Paso 3:Utilice siempre la última actualización de JDK
Asegúrese de utilizar la última actualización de JDK7 o JDK8 porque se han solucionado los errores necesarios para TLSv1.2.
Paso 4:Use archivos JKS en lugar de billeteras
Parece que ya lo ha hecho, pero solo para que otros lo vean:las billeteras son complicadas de configurar y usar con el controlador delgado Oracle JDBC porque requieren jars y propiedades adicionales. Los archivos JKS, por otro lado, se admiten de forma nativa en JRE y, según mi experiencia, siempre han funcionado bien.
Paso 5:cuando utilice JDK7, habilite explícitamente conjuntos de cifrado seguro
Este paso no es necesario cuando se utiliza JDK8. Con JDK7, si está utilizando un conjunto de cifrado fuerte como TLS_RSA_WITH_AES_256_CBC_SHA256, debe habilitarlo a través de la propiedad de conexión oracle.net.ssl_cipher_suites.
Paso 6:Depurar con -Djavax.net.debug=all
Finalmente, si se encuentra con más problemas, puede activar el rastreo para averiguar qué está pasando usando -Djavax.net.debug=all.
====EJEMPLO CON JDK7 Y EL CONTROLADOR DELGADO PARCHEADO 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'
====EJEMPLO CON JDK8 Y EL CONTROLADOR DELGADO PARCHEADO 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'