Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ketika Anda menghubungkan aplikasi ke Azure HorizonDB, klien aplikasi harus menginstal sertifikat akar tepercaya. Bagian berikut memandu Anda memperbarui sertifikat akar tepercaya untuk aplikasi, yang merupakan skenario umum untuk aplikasi yang terhubung ke instans HorizonDB Azure.
Impor sertifikat CA root ke Java Key Store pada klien untuk skenario penyematan sertifikat
Aplikasi Java yang ditulis khusus menggunakan keystore default, yang disebut cacerts, yang berisi sertifikat otoritas sertifikat (CA) tepercaya. Ini juga sering dikenal sebagai penyimpanan sertifikat Java. File sertifikat bernama cacerts berada di direktori properti keamanan, java.home\lib\security, di mana java.home adalah direktori lingkungan runtime ( jre direktori di SDK atau direktori tingkat atas Lingkungan Runtime Java™ 2).
Anda dapat menggunakan petunjuk berikut untuk memperbarui sertifikat root CA klien untuk skenario penyematan sertifikat klien dengan PostgreSQL:
Periksa keystore
cacertsJava untuk melihat apakah sudah berisi sertifikat yang diperlukan. Anda dapat mencantumkan sertifikat di keystore Java dengan menggunakan perintah berikut:keytool -list -v -keystore ..\lib\security\cacerts > outputfile.txtJika sertifikat yang diperlukan tidak ada di penyimpanan kunci Java pada klien, karena Anda dapat memeriksa output, lanjutkan dengan petunjuk berikut:
Buat salinan cadangan keystore kustom Anda.
Unduh sertifikat, dan simpan secara lokal tempat Anda dapat mereferensikannya.
Buat penyimpanan sertifikat CA gabungan dengan semua sertifikat CA Akar yang diperlukan disertakan. Contoh di bawah ini menunjukkan penggunaan DefaultJavaSSLFactory untuk pengguna PostgreSQL JDBC.
keytool -importcert -alias PostgreSQLServerCACert -file D:\ DigiCertGlobalRootG2.crt.pem -keystore truststore -storepass password -noprompt keytool -importcert -alias PostgreSQLServerCACert2 -file "D:\ Microsoft ECC Root Certificate Authority 2017.crt.pem" -keystore truststore -storepass password -noprompt keytool -importcert -alias PostgreSQLServerCACert -file D:\ DigiCertGlobalRootCA.crt.pem -keystore truststore -storepass password -nopromptGanti file keystore asli dengan yang baru dibuat:
System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file"); System.setProperty("javax.net.ssl.trustStorePassword","password");Ganti file pem OS akar asli dengan file OS akar gabungan dan mulai ulang aplikasi/klien Anda.
Untuk informasi selengkapnya tentang mengonfigurasi sertifikat klien dengan driver PostgreSQL JDBC, lihat dokumentasi ini.
Note
Untuk mengimpor sertifikat ke penyimpanan sertifikat klien, Anda mungkin harus mengonversi file .crt sertifikat ke format .pem. Anda dapat menggunakan Transport Layer Security (TLS) di Azure HorizonDB (Pratinjau).
Mendapatkan daftar sertifikat tepercaya di Java Key Store secara terprogram
Secara default, Java menyimpan sertifikat tepercaya dalam file khusus bernama cacerts yang terletak di dalam folder penginstalan Java pada klien.
Contoh di bawah ini membaca pertama kali cacerts dan memuatnya ke objek KeyStore:
private KeyStore loadKeyStore() {
String relativeCacertsPath = "/lib/security/cacerts".replace("/", File.separator);
String filename = System.getProperty("java.home") + relativeCacertsPath;
FileInputStream is = new FileInputStream(filename);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
String password = "changeit";
keystore.load(is, password.toCharArray());
return keystore;
}
Kata sandi default untuk cacerts adalah changeit , tetapi harus berbeda pada klien nyata, karena administrator merekomendasikan untuk mengubah kata sandi segera setelah penginstalan Java.
Setelah memuat objek KeyStore , kita dapat menggunakan kelas PKIXParameters untuk membaca sertifikat yang ada.
public void whenLoadingCacertsKeyStore_thenCertificatesArePresent() {
KeyStore keyStore = loadKeyStore();
PKIXParameters params = new PKIXParameters(keyStore);
Set<TrustAnchor> trustAnchors = params.getTrustAnchors();
List<Certificate> certificates = trustAnchors.stream()
.map(TrustAnchor::getTrustedCert)
.collect(Collectors.toList());
assertFalse(certificates.isEmpty());
}
Memperbarui sertifikat CA akar saat menggunakan klien di Azure App Service dalam skenario penyematan sertifikat
Untuk Azure App Services yang terhubung ke instans Azure HorizonDB, ada dua kemungkinan skenario saat memperbarui sertifikat klien, dan hal ini bergantung pada cara Anda menggunakan SSL dengan aplikasi yang diterapkan ke Azure App Services.
- Sertifikat baru ditambahkan ke App Service pada tingkat platform sebelum perubahan terjadi di instans HorizonDB Azure Anda. Jika Anda menggunakan sertifikat SSL yang disertakan pada platform App Service di aplikasi Anda, tidak ada tindakan yang diperlukan. Untuk informasi selengkapnya, lihat Menambahkan dan mengelola sertifikat TLS/SSL di Azure App Service, dalam dokumentasi Azure App Service.
- Jika Anda secara eksplisit menyertakan jalur ke file sertifikat SSL dalam kode Anda, Anda harus mengunduh sertifikat baru, dan memperbarui kode untuk menggunakannya. Contoh yang baik dari skenario ini adalah ketika Anda menggunakan kontainer kustom di App Service seperti yang dijelaskan dalam Tutorial: Mengonfigurasi kontainer sidecar untuk kontainer kustom di Azure App Service, dalam dokumentasi Azure App Service.
Perbarui sertifikat otoritas sertifikat root saat menggunakan klien pada Azure Kubernetes Service (AKS) untuk skenario penyematan sertifikat
Jika Anda mencoba terhubung ke Azure HorizonDB menggunakan aplikasi yang dihosting di Azure Kubernetes Service (AKS) dan menyematkan sertifikat, ini mirip dengan mengakses dari lingkungan host pelanggan khusus. Lihat langkah-langkah untuk menggunakan TLS dengan pengontrol ingress di AKS.
Perbarui sertifikat root certificate authority bagi pengguna .NET (Npgsql) di Windows dalam skenario penyematan sertifikat
Untuk pengguna .NET (Npgsql) di Windows yang terhubung ke Azure HorizonDB, pastikan ketiganya—Microsoft RSA Root Certificate Authority 2017, DigiCert Global Root G2, dan DigiCert Global Root CA—semuanya ada di Penyimpanan Sertifikat Windows, Trusted Root Certification Authorities. Jika ada sertifikat yang tidak ada, impor sertifikat yang hilang.
Memperbarui sertifikat otoritas sertifikat akar untuk klien lain, untuk skenario penyematan sertifikat
Untuk pengguna klien PostgreSQL lainnya, Anda dapat menggabungkan dua file sertifikat CA menggunakan format berikut:
-----BEGIN CERTIFICATE-----
(Root CA1: DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA2: Microsoft ECC Root Certificate Authority 2017.crt.pem)
-----END CERTIFICATE-----