Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Beim Verbinden von Anwendungen mit Azure Database for PostgreSQL muss der Anwendungsclient vertrauenswürdige Stammzertifikate installieren. Die folgenden Abschnitte führen Sie durch die Aktualisierung der vertrauenswürdigen Stammzertifikate für Anwendungen, bei denen es sich um ein gängiges Szenario für Anwendungen handelt, die eine Verbindung mit einer azure-Datenbank für flexible Serverinstanz von PostgreSQL herstellen.
Von Bedeutung
Ab dem 11. November 2025 sind die Azure-Regionen in der folgenden Liste für einen TLS/SSL-Zertifikatswechsel vorgesehen, der neue Zwischenzertifikate verwendet.
- Zentraler Westen der USA
- Ostasien
- UK South
Ab dem 19. Januar 2026 soll diese Rotation auf alle verbleibenden Azure-Regionen, einschließlich Azure Government und aller anderen Regionen, ausgedehnt werden.
Informationen zur Problembehandlung finden Sie unter Probleme beim Anheften von Zertifikaten.
Importieren von Stamm-Zertifizierungsstellenzertifikaten im Java-Keystore auf dem Client für Szenarien zum Anheften von Zertifikaten
Benutzerdefinierte Java-Anwendungen verwenden einen Standard-Keystore namens cacerts, der vertrauenswürdige Zertifizierungsstellenzertifikate(ZS-Zertifikate) enthält. Es wird auch häufig als Java-Vertrauensspeicher bezeichnet. Eine Zertifikatdatei mit dem Namen cacerts befindet sich im Verzeichnis für Sicherheitseigenschaften „java.home\lib\security“, wobei „java.home“ das Verzeichnis der Runtimeumgebung ist (das Verzeichnis „jre“ im SDK oder das Verzeichnis der obersten Ebene von Java™ 2 Runtime Environment).
Sie können die folgenden Anweisungen verwenden, um Stamm-Zertifizierungsstellenzertifikate auf dem Client für Szenarien zum Anheften von Clientzertifikaten mit Azure Database for PostgreSQL zu aktualisieren:
Überprüfen Sie den Java-Keystore
cacerts, um festzustellen, ob er bereits erforderliche Zertifikate enthält. Sie können Zertifikate im Java-Keystore mithilfe des folgenden Befehls auflisten:keytool -list -v -keystore ..\lib\security\cacerts > outputfile.txtWenn die erforderlichen Zertifikate nicht im Java-Keystore auf dem Client vorhanden sind, wie in der Ausgabe überprüft werden kann, sollten Sie mit den folgenden Anweisungen fortfahren:
Erstellen Sie eine Sicherungskopie Ihres benutzerdefinierten Keystores.
Laden Sie Zertifikate herunter und speichern Sie diese lokal, wo Sie darauf verweisen können.
Generieren Sie einen kombinierten ZS-Zertifikatspeicher mit allen benötigten Stamm-Zertifizierungsstellenzertifikaten. Das folgende Beispiel zeigt die Verwendung von DefaultJavaSSLFactory für PostgreSQL-JDBC-Benutzer.
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 -nopromptErsetzen Sie die ursprüngliche Keystore-Datei durch die neu generierte Datei:
System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file"); System.setProperty("javax.net.ssl.trustStorePassword","password");Ersetzen Sie die ursprüngliche PEM-Datei der Stammzertifizierungsstelle durch die kombinierte Datei der Stammzertifizierungsstelle, und starten Sie die Anwendung bzw. den Client neu.
Weitere Informationen zum Konfigurieren von Clientzertifikaten mit dem PostgreSQL-JDBC-Treiber finden Sie in dieser Dokumentation.
Hinweis
Um Zertifikate in Clientzertifikatspeicher zu importieren, müssen Sie möglicherweise CRT-Dateien für Zertifikate in das PEM-Format konvertieren. Sie können OpenSSL-Hilfsprogramm verwenden, um diese Dateikonvertierungen durchzuführen.
Programmgesteuertes Abrufen einer Liste vertrauenswürdiger Zertifikate im Java-Keystore
Standardmäßig speichert Java die vertrauenswürdigen Zertifikate in einer speziellen Datei namens cacerts, die sich im Java-Installationsordner auf dem Client befindet.
Im folgenden Beispiel wird cacerts zuerst gelesen und dann in das KeyStore-Objekt geladen:
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;
}
Das Standardkennwort für cacerts ist changeit, sollte jedoch auf einem echten Client anders lauten, da Administrierende das Ändern des Kennworts unmittelbar nach der Java-Installation empfehlen.
Nachdem das KeyStore-Objekt geladen wurde, können Sie die PKIXParameters-Klasse verwenden, um vorhandene Zertifikate zu lesen.
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());
}
Aktualisieren Sie Stammzertifikate bei Verwendung von Clients in Azure App Services für Zertifikats-Pinning-Szenarien
Für Azure App-Dienste, die eine Verbindung zu einer flexiblen Azure-Datenbank für PostgreSQL-Serverinstanz herstellen, gibt es zwei mögliche Szenarien zum Aktualisieren von Clientzertifikaten, und es hängt davon ab, wie Sie SSL für Ihre in Azure App-Diensten bereitgestellte Anwendung verwenden.
- Neue Zertifikate werden zu App Service auf Plattformebene hinzugefügt, bevor Änderungen in Ihrer flexiblen PostgreSQL-Datenbank auf Azure vorgenommen werden. Wenn Sie die SSL-Zertifikate verwenden, die in der App Service-Plattform in Ihrer Anwendung enthalten sind, ist keine Aktion erforderlich. Weitere Informationen finden Sie in der Dokumentation zu Azure App Service unter Hinzufügen und Verwalten von TLS/SSL-Zertifikaten in Azure App Service.
- Wenn Sie explizit den Pfad zur SSL-Zertifikatdatei in Ihren Code einschließen, müssen Sie das neue Zertifikat herunterladen und den Code so aktualisieren, dass er verwendet wird. Ein gutes Beispiel für dieses Szenario ist die Verwendung von benutzerdefinierten Containern in App Service, wie im Lernprogramm beschrieben: Konfigurieren eines Sidecar-Containers für benutzerdefinierte Container in Azure App Service in der Azure App Service-Dokumentation.
Aktualisieren von Stammzertifizierungsstellenzertifikaten bei Verwendung von Clients in Azure Kubernetes Service (AKS) für Szenarien zum Anheften von Zertifikaten
Wenn Sie versuchen, mithilfe von in Azure Kubernetes Service (AKS) gehosteten Anwendungen eine Verbindung mit Azure Database for PostgreSQL herzustellen, ähnelt dies dem Zugriff über eine dedizierte Kundenhostumgebung. Die entsprechenden Schritte finden Sie hier.
Aktualisierung der Stammzertifikate für .NET-Benutzer (Npgsql) unter Windows für Szenarien mit Zertifikat-Pinning
Stellen Sie für .NET (Npgsql)-Benutzer unter Windows eine Verbindung mit Azure Database for PostgreSQL – flexible Serverinstanzen sicher, dass alle drei, nämlich die Microsoft RSA Root Certificate Authority 2017, DigiCert Global Root G2 sowie Digicert Global Root CA, im Windows Certificate Store, Vertrauenswürdige Stammzertifizierungsstellen vorhanden sind. Ist eines der Zertifikate nicht vorhanden, importieren Sie das fehlende Zertifikat.
Aktualisieren von Stamm-Zertifizierungsstellenzertifikaten für andere Clients für Szenarien zum Anheften von Zertifikaten
Für andere PostgreSQL-Clientbenutzer können Sie zwei Zertifizierungsstellenzertifikatdateien mit dem folgenden Format zusammenführen:
-----BEGIN CERTIFICATE-----
(Root CA1: DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA2: Microsoft ECC Root Certificate Authority 2017.crt.pem)
-----END CERTIFICATE-----