Aqui estão as etapas a serem seguidas para configurar o driver thin Oracle JDBC para conectar-se ao banco de dados usando TLS v1.2 (supondo que a configuração do banco de dados esteja correta).
Etapa 1:aplique o patch para o bug 19030178 (não é necessário a partir da versão 12.2.0.1)
Você precisará aplicar o patch para o bug 19030178 que permite TLSv1.2. Observe que o patch permite o TLSv1.2, mas não o habilita por padrão. Portanto, com o driver corrigido 12.1.0.2, você também precisa definir oracle.net.ssl_version='1.2'. Essa propriedade pode ser definida como uma propriedade do sistema (usando -D) ou por meio das propriedades da fonte de dados.
Etapa 2:instalar arquivos JCE
Sem os arquivos Java Cryptography Extension (JCE), os conjuntos de cifras fortes (por exemplo, TLS_RSA_WITH_AES_256_CBC_SHA256) não serão habilitados. Portanto, se você estiver usando o JDK7 ou o JDK8, deverá instalar os arquivos de política de jurisdição de força ilimitada JCE. Esses arquivos podem ser encontrados no site da Oracle.
Etapa 3:sempre use a atualização mais recente do JDK
Certifique-se de usar a atualização mais recente do JDK7 ou JDK8 porque foram corrigidos os bugs necessários para o TLSv1.2.
Etapa 4:use arquivos JKS em vez de carteiras
Parece que você já fez isso, mas apenas para os outros verem:as carteiras são complicadas de configurar e usar com o driver thin Oracle JDBC porque exigem jars extras e propriedades extras. Os arquivos JKS, por outro lado, são suportados nativamente no JRE e, na minha experiência, sempre funcionaram bem.
Etapa 5:ao usar o JDK7, ative explicitamente conjuntos de cifras fortes
Esta etapa não é necessária ao usar o JDK8. Com o JDK7, se você estiver usando um conjunto de criptografia forte, como TLS_RSA_WITH_AES_256_CBC_SHA256, deverá habilitá-lo por meio da propriedade de conexão oracle.net.ssl_cipher_suites.
Etapa 6:depurar com -Djavax.net.debug=all
Finalmente, se você tiver mais problemas, poderá ativar o rastreamento para descobrir o que está acontecendo usando -Djavax.net.debug=all.
====EXEMPLO COM JDK7 E O 12.1.0.2 THIN DRIVER ATUALIZADO =====
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'
====EXEMPLO COM JDK8 E O 12.1.0.2 THIN DRIVER ATUALIZADO =====
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'