Berikut adalah langkah-langkah yang harus diikuti untuk mengonfigurasi thin driver Oracle JDBC agar terhubung ke Database menggunakan TLS v1.2 (dengan asumsi konfigurasi Database Anda benar).
Langkah 1:Terapkan tambalan untuk bug 19030178 (tidak diperlukan mulai dari 12.2.0.1)
Anda perlu menerapkan tambalan untuk bug 19030178 yang memungkinkan TLSv1.2. Perhatikan bahwa tambalan mengizinkan TLSv1.2 tetapi tidak mengaktifkannya secara default. Jadi dengan driver yang ditambal 12.1.0.2 Anda juga perlu mengatur oracle.net.ssl_version='1.2'. Properti ini dapat disetel sebagai properti sistem (menggunakan -D) atau melalui properti sumber data.
Langkah 2:Instal file JCE
Tanpa file Java Cryptography Extension (JCE), rangkaian sandi yang kuat (misalnya TLS_RSA_WITH_AES_256_CBC_SHA256) tidak akan diaktifkan. Jadi, apakah Anda menggunakan JDK7 atau JDK8, Anda harus menginstal File Kebijakan Yurisdiksi Kekuatan Tak Terbatas JCE. File-file ini dapat ditemukan di situs web Oracle.
Langkah 3:Selalu gunakan pembaruan JDK terbaru
Pastikan untuk menggunakan pembaruan terbaru JDK7 atau JDK8 karena bug yang diperlukan untuk TLSv1.2 telah diperbaiki.
Langkah 4:Gunakan file JKS sebagai ganti dompet
Sepertinya Anda sudah melakukannya tetapi hanya untuk dilihat orang lain:dompet rumit untuk dikonfigurasi dan digunakan dengan driver tipis Oracle JDBC karena memerlukan stoples ekstra dan properti ekstra. File JKS di sisi lain didukung secara native di JRE dan, menurut pengalaman saya, selalu bekerja dengan baik.
Langkah 5:Saat menggunakan JDK7, aktifkan rangkaian sandi yang kuat secara eksplisit
Langkah ini tidak diperlukan saat menggunakan JDK8. Dengan JDK7, jika Anda menggunakan rangkaian sandi yang kuat seperti TLS_RSA_WITH_AES_256_CBC_SHA256, maka Anda harus mengaktifkannya melalui properti koneksi oracle.net.ssl_cipher_suites.
Langkah 6:Debug dengan -Djavax.net.debug=all
Terakhir, jika Anda mengalami lebih banyak masalah, Anda dapat mengaktifkan pelacakan untuk mengetahui apa yang terjadi menggunakan -Djavax.net.debug=all.
====CONTOH DENGAN JDK7 DAN DRIVER TIPIS 12.1.0.2 PATCHED =====
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'
====CONTOH DENGAN JDK8 DAN DRIVER TIPIS 12.1.0.2 PATCH =====
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'