Bagikan melalui


Memperbarui sertifikat klien aplikasi

Saat menyambungkan aplikasi ke Azure Database for PostgreSQL, 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 server fleksibel Azure Database for PostgreSQL.

Penting

Mulai 11 November 2025, wilayah Azure dalam daftar berikut direncanakan untuk rotasi sertifikat TLS/SSL yang menggunakan sertifikat CA menengah baru.

  • Barat Sentral AS
  • Asia Timur
  • UK Selatan

Mulai 19 Januari 2026, rotasi ini direncanakan akan meluas ke semua wilayah Azure yang tersisa, termasuk Azure Government dan semua wilayah lainnya.

Untuk informasi tentang pemecahan masalah, lihat Masalah penyematan sertifikat.

Impor Sertifikat OS Akar di 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 kepercayaan 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:

  1. Periksa cacerts keystore java 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.txt
    

    Jika sertifikat yang diperlukan tidak ada di penyimpanan kunci java pada klien, seperti yang dapat diperiksa dalam output, Anda harus melanjutkan dengan petunjuk berikut:

  2. Buat salinan cadangan keystore kustom Anda.

  3. Unduh sertifikat, dan simpan secara lokal tempat Anda dapat mereferensikannya.

  4. 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 -noprompt
    
  5. Ganti file keystore asli dengan yang baru dibuat:

    System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
    System.setProperty("javax.net.ssl.trustStorePassword","password");
    
  6. 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.

    Nota

    Untuk mengimpor sertifikat ke penyimpanan sertifikat klien, Anda mungkin harus mengonversi file .crt sertifikat ke format .pem. Anda dapat menggunakan utilitas OpenSSL untuk melakukan konversi file ini.

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 pertama kali cacerts membaca 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 OS Akar saat menggunakan klien di Azure App Services, untuk skenario penyematan sertifikat

Untuk layanan Aplikasi Azure, menyambungkan ke instans server fleksibel Azure Database for PostgreSQL, kita dapat memiliki dua skenario yang mungkin tentang memperbarui sertifikat klien dan itu tergantung pada cara Anda menggunakan SSL dengan aplikasi Anda yang disebarkan ke Azure App Services.

  • Sertifikat baru ditambahkan ke App Service pada tingkat platform sebelum perubahan terjadi di instans server fleksibel Azure Database for PostgreSQL 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.

Memperbarui sertifikat CA Akar saat menggunakan klien di Azure Kubernetes Service (AKS), untuk skenario penyematan sertifikat

Jika Anda mencoba terhubung ke Azure Database for PostgreSQL menggunakan aplikasi yang dihosting di Azure Kubernetes Services (AKS) dan menyematkan sertifikat, itu mirip dengan akses dari lingkungan host pelanggan khusus. Lihat langkah-langkah di sini.

Memperbarui sertifikat CA Akar untuk pengguna .NET (Npgsql) di Windows, untuk skenario penyematan sertifikat

Untuk pengguna .NET (Npgsql) di Windows yang menghubungkan ke instans server fleksibel Azure Database for PostgreSQL, pastikan ketiga Microsoft RSA Root Certificate Authority 2017, DigiCert Global Root G2, dan DigiCert Global Root CA ada di Windows Certificate Store, Trusted Root Certification Authorities. Jika ada sertifikat yang tidak ada, impor sertifikat yang hilang.

Memperbarui sertifikat OS 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-----