Mengonfigurasi klien untuk enkripsi
Driver Microsoft JDBC untuk SQL Server atau klien harus memvalidasi bahwa server adalah server yang benar dan sertifikatnya dikeluarkan oleh otoritas sertifikat yang dipercaya klien. Untuk memvalidasi sertifikat server, materi kepercayaan harus disediakan pada waktu koneksi. Selain itu, penerbit sertifikat server harus menjadi otoritas sertifikat yang dipercaya klien.
Artikel ini pertama-tama menjelaskan cara menyediakan materi kepercayaan di komputer klien. Kemudian menjelaskan cara mengimpor sertifikat server ke penyimpanan kepercayaan komputer klien ketika instans sertifikat Keamanan Lapisan Transportasi (TLS) SQL Server dikeluarkan oleh otoritas sertifikat privat.
Untuk informasi selengkapnya tentang memvalidasi sertifikat server, lihat bagian Memvalidasi Sertifikat TLS Server di Memahami dukungan enkripsi.
Mengonfigurasi penyimpanan kepercayaan klien
Memvalidasi sertifikat server memerlukan materi kepercayaan pada waktu koneksi baik dengan menggunakan properti koneksi trustStore dan trustStorePassword secara eksplisit, atau dengan menggunakan penyimpanan kepercayaan default Java Virtual Machine (JVM) yang mendasar secara implisit. Untuk informasi selengkapnya tentang cara mengatur properti trustStore dan trustStorePassword dalam string koneksi, lihat Menyambungkan dengan enkripsi.
Jika properti trustStore tidak ditentukan atau diatur ke null, Driver Microsoft JDBC untuk SQL Server akan mengandalkan penyedia keamanan JVM yang mendasarinya, Java Secure Socket Extension (SunJSSE). Penyedia SunJSSE menyediakan TrustManager default, yang digunakan untuk memvalidasi sertifikat X.509 yang dikembalikan oleh SQL Server terhadap materi kepercayaan yang disediakan di penyimpanan kepercayaan.
TrustManager mencoba menemukan trustStore default dalam urutan pencarian berikut:
- Jika properti sistem "javax.net.ssl.trustStore" ditentukan, TrustManager mencoba menemukan file trustStore default dengan menggunakan nama file yang ditentukan oleh properti sistem tersebut.
- Jika properti sistem "javax.net.ssl.trustStore" tidak ditentukan, dan file "<java-home>/lib/security/jssecacerts" ada, file tersebut digunakan.
- Jika file "<java-home>/lib/security/cacerts" ada, file tersebut digunakan.
Untuk informasi selengkapnya, lihat dokumentasi antarmuka SUNX509 TrustManager di situs Web Sun Microsystems.
Java Runtime Environment memungkinkan Anda mengatur properti sistem trustStore dan trustStorePassword sebagai berikut:
java -Djavax.net.ssl.trustStore=C:\MyCertificates\storeName
java -Djavax.net.ssl.trustStorePassword=storePassword
Dalam hal ini, aplikasi apa pun yang berjalan pada JVM ini akan menggunakan pengaturan ini sebagai default. Untuk mengambil alih pengaturan default di aplikasi Anda, Anda harus mengatur properti koneksi trustStore dan trustStorePassword baik di string koneksi atau dalam metode setter yang sesuai dari kelas SQLServerDataSource.
Selain itu, Anda dapat mengonfigurasi dan mengelola file penyimpanan kepercayaan default seperti "<java-home>/lib/security/jssecacerts" dan "<java-home>/lib/security/cacerts". Untuk melakukannya, gunakan utilitas JAVA "keytool" yang diinstal dengan JRE (Java Runtime Environment). Untuk informasi selengkapnya tentang utilitas "keytool", lihat dokumentasi keytool di situs Web Oracle.
Mengimpor sertifikat server ke penyimpanan kepercayaan
Selama jabat tangan TLS, server mengirimkan sertifikat kunci publiknya ke klien. Penerbit sertifikat kunci publik dikenal sebagai Otoritas Sertifikat (CA). Klien harus memastikan otoritas sertifikat adalah salah satu kepercayaan klien. Jaminan ini dicapai dengan mengetahui kunci publik CA tepercaya terlebih dahulu. Biasanya, JVM dikirim dengan sekumpulan otoritas sertifikat tepercaya yang telah ditentukan sebelumnya.
Jika instans sertifikat TLS SQL Server dikeluarkan oleh otoritas sertifikat privat, Anda harus menambahkan sertifikat otoritas sertifikat ke daftar sertifikat tepercaya di penyimpanan kepercayaan komputer klien.
Untuk melakukannya, gunakan utilitas JAVA "keytool" yang diinstal dengan JRE (Java Runtime Environment). Prompt perintah berikut menunjukkan cara menggunakan utilitas "keytool" untuk mengimpor sertifikat dari file:
keytool -import -v -trustcacerts -alias myServer -file caCert.cer -keystore truststore.ks
Contoh menggunakan file bernama "caCert.cer" sebagai file sertifikat. Anda harus mendapatkan file sertifikat ini dari server. Langkah-langkah berikut menjelaskan cara mengekspor sertifikat server ke file:
- Pilih Mulai lalu Jalankan, dan ketik MMC. (MMC adalah akronim dari Microsoft Management Console.)
- Di MMC, buka Sertifikat.
- Memperluas Pribadi lalu Sertifikat.
- Klik kanan sertifikat server, lalu pilih Semua Tugas\Ekspor.
- Pilih Berikutnya untuk melewati kotak dialog selamat datang dari Wizard Ekspor Sertifikat.
- Konfirmasikan bahwa
No, do not export the private key
dipilih, lalu pilih Berikutnya. - Pastikan untuk memilih biner berkode DER X.509 (. CER) atau Base-64 encoded X.509 (. CER), lalu pilih Berikutnya.
- Masukkan nama file ekspor.
- Pilih Berikutnya, lalu pilih Selesai untuk mengekspor sertifikat.