사용하여 데이터베이스에 연결하는 오라클 JDBC 얇은 드라이버를 구성하기 위해 수행하는 단계입니다 TLS v1.2 (데이터베이스 구성이 올바른 것으로 가정).
1 단계 : 버그 19,030,178에 대한 패치를 적용 (12.2.0.1부터 필요하지 않습니다) 당신은 TLSv1.2 수 있습니다 버그 19,030,178에 대한 패치를 적용해야합니다
. 패치는 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 Jurisdiction Policy Files를 설치해야합니다. 이 파일은 Oracle 웹 사이트에서 찾을 수 있습니다.
3 단계 : 항상 버그 TLSv1.2 필요가 수정되었습니다 때문에 JDK7 또는 JDK8 중 하나의 최신 업데이트를 사용하십시오 JDK를
의 최신 업데이트를 사용합니다.
4 단계 : 대신 지갑의 사용 JKS 파일은
그것은 당신이 이미 짓을 좋아하지만 다른 사람들이 볼 만 찾습니다 지갑 구성하고 그들이 필요로하기 때문에 오라클 JDBC 얇은 드라이버를 사용하는 복잡 추가 병 및 여분 재산. 반면 JKS 파일은 JRE에서 기본적으로 지원되며, 제 경험상 항상 잘 작동합니다.
5 단계 : JDK7를 사용하는 경우, 명시 적으로 강력한 암호 스위트
이 단계를 수는 JDK8를 사용하는 경우 필요하지 않습니다. JDK7에서는 TLS_RSA_WITH_AES_256_CBC_SHA256과 같은 강력한 암호 제품군을 사용하는 경우 oracle.net.ssl_cipher_suites 연결 속성을 통해이를 활성화해야합니다.
6 단계 : -Djavax.net.debug와 디버그 = 당신이 더 많은 문제가 발생하는 경우
마지막으로, 당신은 추적을 설정할 수 있습니다 모든 = 모든 -Djavax.net.debug를 사용하여 무슨 일이 일어나고 있는지 알아내는 .
JDK7 WITH ==== 예 제품과 12.1.0.2 패치 THIN DRIVER AND ===== JDK8 12.1.0 WITH
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'
==== 예.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'
감사합니다. 그것은 효과가 있었다. – atom
이것은 Thin-JDBC 12.2.0.1에서 수정되었습니다. – eckes
@eckes 이것을 지적 해 주셔서 감사합니다. 그에 따라 대답을 편집했습니다. –