Acara
31 Mar, 23 - 2 Apr, 23
Peristiwa pembelajaran SQL, Fabric, dan Power BI terbesar. 31 Maret – 2 April. Gunakan kode FABINSIDER untuk menyimpan $400.
Daftar hari iniBrowser ini sudah tidak didukung.
Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.
Saat menyambungkan ke SQL Server, jika aplikasi meminta enkripsi dan instans SQL Server dikonfigurasi untuk mendukung enkripsi TLS, Driver Microsoft JDBC untuk SQL Server memulai jabat tangan TLS. Jabat tangan memungkinkan server dan klien untuk menegosiasikan enkripsi dan algoritma kriptografi untuk digunakan untuk melindungi data. Setelah jabat tangan TLS selesai, klien dan server dapat mengirim data terenkripsi dengan aman. Selama jabat tangan TLS, server mengirimkan sertifikat kunci publiknya ke klien. Penerbit sertifikat kunci publik dikenal sebagai Otoritas Sertifikat (CA). Klien bertanggung jawab untuk memvalidasi bahwa otoritas sertifikat adalah salah satu kepercayaan klien.
Jika aplikasi tidak meminta enkripsi, Driver Microsoft JDBC untuk SQL Server tidak akan memaksa SQL Server untuk mendukung enkripsi TLS. Jika instans SQL Server tidak dikonfigurasi untuk memaksa enkripsi TLS, koneksi dibuat tanpa enkripsi. Jika instans SQL Server dikonfigurasi untuk memaksa enkripsi TLS, driver akan secara otomatis mengaktifkan enkripsi TLS saat berjalan pada Java Virtual Machine (JVM) yang dikonfigurasi dengan benar, atau koneksi dihentikan dan driver akan menimbulkan kesalahan.
Catatan
Pastikan nilai yang diteruskan ke serverName sama persis dengan Nama Umum (CN) atau nama DNS di Nama Alternatif Subjek (SAN) di sertifikat server agar koneksi TLS berhasil.
Untuk informasi selengkapnya tentang cara mengonfigurasi TLS untuk SQL Server, lihat Mengaktifkan koneksi terenkripsi ke Mesin Database.
Untuk mengizinkan aplikasi menggunakan enkripsi TLS, Driver Microsoft JDBC untuk SQL Server telah memperkenalkan properti koneksi berikut yang dimulai dengan rilis versi 1.2: mengenkripsi, trustServerCertificate, trustStore, trustStorePassword, dan hostNameInCertificate. Untuk mengizinkan driver menggunakan TDS 8.0 dengan enkripsi TLS, server properti koneksiCertificate telah diperkenalkan dimulai dengan rilis versi 11.2. Untuk informasi selengkapnya, lihat Mengatur properti koneksi.
Tabel berikut ini meringkas bagaimana versi Microsoft JDBC Driver for SQL Server berperilaku untuk kemungkinan skenario koneksi TLS. Setiap skenario menggunakan serangkaian properti koneksi TLS yang berbeda. Tabel meliputi:
Catatan
Perilaku yang sama berlaku untuk autentikasi pengguna SQL Server dan autentikasi terintegrasi Windows.
Pengaturan properti | Perilaku |
---|---|
encrypt = false atau blank trustServerCertificate = apa pun hostNameInCertificate = apa pun trustStore = apa pun trustStorePassword = apa pun |
Driver tidak akan memaksa server untuk mendukung enkripsi TLS. Jika server memiliki sertifikat yang ditandatangani sendiri, driver memulai pertukaran sertifikat TLS. Sertifikat TLS tidak akan divalidasi dan hanya kredensial (dalam paket masuk) yang dienkripsi. Jika server mengharuskan klien untuk mendukung enkripsi TLS, driver akan memulai pertukaran sertifikat TLS. Sertifikat TLS tidak akan divalidasi, tetapi seluruh komunikasi akan dienkripsi. |
encrypt = true trustServerCertificate = true hostNameInCertificate = apa pun trustStore = apa pun trustStorePassword = apa pun |
Driver meminta untuk menggunakan enkripsi TLS dengan server. Jika server mengharuskan klien untuk mendukung enkripsi TLS atau jika server mendukung enkripsi, driver akan memulai pertukaran sertifikat TLS. Jika properti trustServerCertificate diatur ke "true", driver tidak akan memvalidasi sertifikat TLS. Jika server tidak dikonfigurasi untuk mendukung enkripsi, driver akan menimbulkan kesalahan dan mengakhiri koneksi. |
encrypt = true trustServerCertificate = false atau blank hostNameInCertificate = kosong trustStore = kosong trustStorePassword = kosong |
Driver meminta untuk menggunakan enkripsi TLS dengan server. Jika server mengharuskan klien untuk mendukung enkripsi TLS atau jika server mendukung enkripsi, driver akan memulai pertukaran sertifikat TLS. Driver akan menggunakan properti serverName yang ditentukan pada URL koneksi untuk memvalidasi sertifikat TLS server dan mengandalkan aturan pencarian pabrik manajer kepercayaan untuk menentukan penyimpanan sertifikat mana yang akan digunakan. Jika server tidak dikonfigurasi untuk mendukung enkripsi, driver akan menimbulkan kesalahan dan mengakhiri koneksi. |
encrypt = true trustServerCertificate = false atau blank hostNameInCertificate = nilai trustStore = kosong trustStorePassword = kosong |
Driver meminta untuk menggunakan enkripsi TLS dengan server. Jika server mengharuskan klien untuk mendukung enkripsi TLS atau jika server mendukung enkripsi, driver akan memulai pertukaran sertifikat TLS. Driver akan memvalidasi nilai subjek sertifikat TLS dengan menggunakan nilai yang ditentukan untuk properti hostNameInCertificate . Jika server tidak dikonfigurasi untuk mendukung enkripsi, driver akan menimbulkan kesalahan dan mengakhiri koneksi. |
encrypt = true trustServerCertificate = false atau blank hostNameInCertificate = kosong trustStore = nilai trustStorePassword = nilai |
Driver meminta untuk menggunakan enkripsi TLS dengan server. Jika server mengharuskan klien untuk mendukung enkripsi TLS atau jika server mendukung enkripsi, driver akan memulai pertukaran sertifikat TLS. Driver akan menggunakan nilai properti trustStore untuk menemukan file trustStore sertifikat dan nilai properti trustStorePassword untuk memeriksa integritas file trustStore. Jika server tidak dikonfigurasi untuk mendukung enkripsi, driver akan menimbulkan kesalahan dan mengakhiri koneksi. |
encrypt = true trustServerCertificate = false atau blank hostNameInCertificate = kosong trustStore = kosong trustStorePassword = nilai |
Driver meminta untuk menggunakan enkripsi TLS dengan server. Jika server mengharuskan klien untuk mendukung enkripsi TLS atau jika server mendukung enkripsi, driver akan memulai pertukaran sertifikat TLS. Driver akan menggunakan nilai properti trustStorePassword untuk memeriksa integritas file trustStore default. Jika server tidak dikonfigurasi untuk mendukung enkripsi, driver akan menimbulkan kesalahan dan mengakhiri koneksi. |
encrypt = true trustServerCertificate = false atau blank hostNameInCertificate = kosong trustStore = nilai trustStorePassword = kosong |
Driver meminta untuk menggunakan enkripsi TLS dengan server. Jika server mengharuskan klien untuk mendukung enkripsi TLS atau jika server mendukung enkripsi, driver akan memulai pertukaran sertifikat TLS. Driver akan menggunakan nilai properti trustStore untuk mencari lokasi file trustStore. Jika server tidak dikonfigurasi untuk mendukung enkripsi, driver akan menimbulkan kesalahan dan mengakhiri koneksi. |
encrypt = true trustServerCertificate = false atau blank hostNameInCertificate = nilai trustStore = kosong trustStorePassword = nilai |
Driver meminta untuk menggunakan enkripsi TLS dengan server. Jika server mengharuskan klien untuk mendukung enkripsi TLS atau jika server mendukung enkripsi, driver akan memulai pertukaran sertifikat TLS. Driver akan menggunakan nilai properti trustStorePassword untuk memeriksa integritas file trustStore default. Selain itu, driver akan menggunakan nilai properti hostNameInCertificate untuk memvalidasi sertifikat TLS. Jika server tidak dikonfigurasi untuk mendukung enkripsi, driver akan menimbulkan kesalahan dan mengakhiri koneksi. |
encrypt = true trustServerCertificate = false atau blank hostNameInCertificate = nilai trustStore = nilai trustStorePassword = kosong |
Driver meminta untuk menggunakan enkripsi TLS dengan server. Jika server mengharuskan klien untuk mendukung enkripsi TLS atau jika server mendukung enkripsi, driver akan memulai pertukaran sertifikat TLS. Driver akan menggunakan nilai properti trustStore untuk mencari lokasi file trustStore. Selain itu, driver akan menggunakan nilai properti hostNameInCertificate untuk memvalidasi sertifikat TLS. Jika server tidak dikonfigurasi untuk mendukung enkripsi, driver akan menimbulkan kesalahan dan mengakhiri koneksi. |
encrypt = true trustServerCertificate = false atau blank hostNameInCertificate = nilai trustStore = nilai trustStorePassword = nilai |
Driver meminta untuk menggunakan enkripsi TLS dengan server. Jika server mengharuskan klien untuk mendukung enkripsi TLS atau jika server mendukung enkripsi, driver akan memulai pertukaran sertifikat TLS. Driver akan menggunakan nilai properti trustStore untuk menemukan file trustStore sertifikat dan nilai properti trustStorePassword untuk memeriksa integritas file trustStore. Selain itu, driver akan menggunakan nilai properti hostNameInCertificate untuk memvalidasi sertifikat TLS. Jika server tidak dikonfigurasi untuk mendukung enkripsi, driver akan menimbulkan kesalahan dan mengakhiri koneksi. |
encrypt = strict hostNameInCertificate = nilai trustStore = kosong trustStorePassword = kosong serverCertificate = nilai |
Driver meminta untuk menggunakan enkripsi TDS 8.0 strict TLS dengan server.Driver akan memulai jabat tangan TLS dan pertukaran sertifikat dengan server sebagai tindakan pertama. Pengaturan trustServerCertificate diabaikan dan diperlakukan sebagai false dalam strict mode.Driver akan menggunakan properti hostNameInCertificate atau serverCertificate opsional untuk memvalidasi sertifikat TLS server. Jika server tidak dikonfigurasi untuk mendukung koneksi TDS 8, driver akan menimbulkan kesalahan dan mengakhiri koneksi. |
Jika properti enkripsi diatur ke true, Driver Microsoft JDBC untuk SQL Server menggunakan penyedia keamanan JSSE default JVM untuk menegosiasikan enkripsi TLS dengan SQL Server. Penyedia keamanan default mungkin tidak mendukung semua fitur yang diperlukan untuk menegosiasikan enkripsi TLS dengan sukses. Misalnya, penyedia keamanan default mungkin tidak mendukung ukuran kunci umum RSA yang digunakan dalam sertifikat TLS SQL Server. Dalam hal ini, penyedia keamanan default mungkin menimbulkan kesalahan yang akan menyebabkan driver JDBC mengakhiri koneksi. Untuk mengatasi masalah ini, salah satu opsi berikut dapat digunakan:
Selama jabat tangan TLS, server mengirimkan sertifikat kunci publiknya ke klien. Driver atau klien JDBC harus memvalidasi bahwa sertifikat server dikeluarkan oleh otoritas sertifikat yang dipercaya klien. Driver memerlukan sertifikat server untuk memenuhi kondisi berikut:
Untuk penggunaan TDS 8.0 dengan strict
enkripsi, nilai properti serverCertificate menyediakan jalur ke sertifikat server yang akan digunakan untuk validasi sertifikat server. File ini harus menggunakan format file PEM. Sertifikat yang diterima dari server harus sama persis dengan sertifikat ini.
Acara
31 Mar, 23 - 2 Apr, 23
Peristiwa pembelajaran SQL, Fabric, dan Power BI terbesar. 31 Maret – 2 April. Gunakan kode FABINSIDER untuk menyimpan $400.
Daftar hari iniPelatihan
Modul
Melindungi data saat transit dan saat tidak aktif - Training
Melindungi data saat transit dan saat tidak aktif
Sertifikasi
Bersertifikat Microsoft: Rekan Administrator Database Azure - Certifications
Mengelola infrastruktur database SQL Server untuk database hubungan cloud, lokal, dan hibrid menggunakan penawaran database relasional Microsoft PaaS.
Dokumentasi
Menyambungkan dengan enkripsi - JDBC Driver for SQL Server
Temukan contoh cara menyambungkan menggunakan enkripsi TLS di aplikasi Java Anda dengan menggunakan driver JDBC untuk SQL Server.
Mengonfigurasi klien untuk enkripsi - JDBC Driver for SQL Server
Pelajari tentang enkripsi sisi klien dan kepercayaan sertifikat untuk memastikan keamanan klien menggunakan Driver Microsoft JDBC untuk SQL Server.
Menggunakan enkripsi - JDBC Driver for SQL Server
Pelajari cara membuat saluran komunikasi yang aman menggunakan enkripsi TLS dengan koneksi database SQL Anda.