Aktualisierung von Anwendungen für die Verbindung zu SQL Postgre-DB-Instances mithilfe neuer SSL TLS /-Zertifikate - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktualisierung von Anwendungen für die Verbindung zu SQL Postgre-DB-Instances mithilfe neuer SSL TLS /-Zertifikate

Zertifikate, die für Secure Socket Layer oder Transport Layer Security (SSL/TLS) verwendet werden, haben in der Regel eine festgelegte Lebensdauer. Wenn Dienstanbieter ihre Certificate-Authority(CA)-Zertifikate aktualisieren, müssen Clients ihre Anwendungen aktualisieren, um die neuen Zertifikate zu verwenden. Im Folgenden finden Sie Informationen darüber, wie Sie feststellen können, ob Ihre Client-AnwendungenSSL/verwenden, TLS um eine Verbindung zu Ihrer Amazon RDS for SQL Postgre-DB-Instance herzustellen. Sie finden auch Informationen darüber, wie Sie prüfen können, ob diese Anwendungen das Serverzertifikat überprüfen, wenn sie eine Verbindung herstellen.

Anmerkung

Eine Client-Anwendung, die so konfiguriert ist, dass sie das Serverzertifikat vor der TLS VerbindungSSL/verifiziert, muss über ein gültiges CA-Zertifikat im Trust Store des Clients verfügen. Aktualisieren Sie den Client-Truststore bei Bedarf für neue Zertifikate.

Nach der Aktualisierung der CA-Zertifikate in den Trust Stores Ihrer Client-Anwendung können Sie die Zertifikate auf Ihren DB-Instances rotieren. Es wird nachdrücklich empfohlen, diese Verfahren vor der Implementierung in Produktionsumgebungen in einer Nicht-Produktionsumgebung zu testen.

Weitere Informationen zur Zertifikatrotation finden Sie unter Ihr SSL TLS /-Zertifikat rotieren. Weitere Informationen zum Herunterladen von Zertifikaten finden Sie unter . Hinweise zur Verwendung vonSSL/TLSmit SQL Postgre-DB-Instances finden Sie unterVerwendung SSL mit einer SQL Postgre-DB-Instance.

Feststellen, ob Anwendungen mithilfe von Verbindungen zu SQL Postgre-DB-Instances herstellen SSL

Prüfen Sie die DB-Instance-Konfiguration auf den Wert des Parameters rds.force_ssl. Standardmäßig ist der rds.force_ssl Parameter für DB-Instances, die SQL Postgre-Versionen vor Version 15 verwenden, auf 0 (aus) gesetzt. Standardmäßig rds.force_ssl ist er für DB-Instances, die SQL Postgre-Version 15 und spätere Hauptversionen verwenden, auf 1 (on) gesetzt. Wenn der rds.force_ssl Parameter auf 1 (on) gesetzt ist, müssen ClientsSSL/TLSfür Verbindungen verwenden. Weitere Informationen zu Parametergruppen finden Sie unter Parametergruppen für Amazon RDS.

Wenn Sie die Hauptversion von RDS Postgre SQL Version 9.5 oder höher verwenden und nicht auf 1 (on) eingestellt rds.force_ssl ist, fragen Sie die pg_stat_ssl Ansicht ab, mit SSL der Verbindungen überprüft werden sollen. Die folgende Abfrage gibt beispielsweise nur SSL Verbindungen und Informationen über die verwendeten SSL Clients zurück.

SELECT datname, usename, ssl, client_addr FROM pg_stat_ssl INNER JOIN pg_stat_activity ON pg_stat_ssl.pid = pg_stat_activity.pid WHERE ssl is true and usename<>'rdsadmin';

Nur Zeilen, die TLS Verbindungen vom TypSSL/verwenden, werden mit Informationen über die Verbindung angezeigt. Dies ist eine Beispielausgabe.

datname | usename | ssl | client_addr ----------+---------+-----+------------- benchdb | pgadmin | t | 53.95.6.13 postgres | pgadmin | t | 53.95.6.13 (2 rows)

Diese Abfrage zeigt nur die aktuellen Verbindungen zum Zeitpunkt der Abfrage an. Das Fehlen von Ergebnissen bedeutet nicht, dass keine Anwendungen SSL Verbindungen verwenden. Andere SSL Verbindungen werden möglicherweise zu einem anderen Zeitpunkt hergestellt.

Ermitteln, ob ein Client zum Herstellen von Verbindungen Zertifikatverifizierungen erfordert

Wenn ein Client wie psql oder mit SSL Support konfiguriert istJDBC, versucht der Client SSL standardmäßig zunächst, eine Verbindung mit der Datenbank herzustellen. Wenn der Client keine Verbindung herstellen kannSSL, kehrt er zu einer Verbindung ohne Verbindung zurück. SSL Der sslmode Standardmodus wird für beide libpq-basierten Clients (wie psql) verwendet und JDBC ist auf gesetzt. prefer Das Zertifikat auf dem Server wird nur verifiziert, wenn sslrootcert es auf oder sslmode gesetzt ist. verify-ca verify-full Wenn das Zertifikat ungültig ist, wird ein Fehler ausgelöst.

Wird verwendetPGSSLROOTCERT, um das Zertifikat anhand der PGSSLMODE Umgebungsvariablen zu verifizieren, deren PGSSLMODE Einstellung auf verify-ca oder gesetzt istverify-full.

PGSSLMODE=verify-full PGSSLROOTCERT=/fullpath/ssl-cert.pem psql -h pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com -U masteruser -d postgres

Verwenden Sie das sslrootcert Argument, um das Zertifikat sslmode im Format einer Verbindungszeichenfolge zu verifizieren, wobei die sslmode Einstellung auf verify-ca oder gesetzt ist, verify-full um das Zertifikat zu überprüfen.

psql "host=pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com sslmode=verify-full sslrootcert=/full/path/ssl-cert.pem user=masteruser dbname=postgres"

Wenn Sie beispielsweise in vorherigen Fall ein ungültiges Stammzertifikat verwenden, wird Ihnen im Client einen Fehler ähnlich dem folgenden angezeigt.

psql: SSL error: certificate verify failed

Aktualisieren des Trust Stores Ihrer Anwendung

Informationen zur Aktualisierung des Vertrauensspeichers für SQL Postgre-Anwendungen finden Sie unter Sichere TCP /IP-Verbindungen mit SSL in der SQL Postgre-Dokumentation.

Informationen zum Herunterladen des Stammverzeichnisses finden Sie unter .

Beispiele für Skripte, die Zertifikate importieren, finden Sie unter Beispielskript für den Import von Zertifikaten in Ihren Trust Store.

Anmerkung

Wenn Sie den Trust Store aktualisieren, können Sie ältere Zertifikate beibehalten und die neuen Zertifikate einfach hinzufügen.

Verwenden von SSL TLS /-Verbindungen für verschiedene Arten von Anwendungen

Im Folgenden finden Sie Informationen zur Verwendung vonSSL/TLS-Verbindungen für verschiedene Arten von Anwendungen:

  • psql

    Der Client wird über die Befehlszeile durch die Angabe von Optionen als Verbindungszeichenfolge oder Umgebungsvariablen aufgerufen. Für SSL TLS /-Verbindungen sind die relevanten Optionen sslmode (UmgebungsvariablePGSSLMODE), sslrootcert (UmgebungsvariablePGSSLROOTCERT).

    Die vollständige Liste der Optionen finden Sie unter Parameter-Schlüsselwörter in der SQL Postgre-Dokumentation. Die vollständige Liste der Umgebungsvariablen finden Sie unter Umgebungsvariablen in der Postgre-Dokumentation. SQL

  • pgAdmin

    Dieser browserbasierte Client ist eine benutzerfreundlichere Oberfläche für die Verbindung zu einer SQL Postgre-Datenbank.

    Informationen zur Konfiguration von Verbindungen finden Sie in der pgAdmin Dokumentation.

  • JDBC

    JDBCermöglicht Datenbankverbindungen mit Java-Anwendungen.

    Allgemeine Informationen zum Herstellen einer Verbindung zu einer SQL Postgre-Datenbank mit JDBC finden Sie unter Verbindung zur Datenbank herstellen in der Dokumentation zum SQL JDBC Postgre-Treiber. Informationen zum Herstellen einer Verbindung mitSSL/TLSfinden Sie unter Konfiguration des Clients in der Dokumentation zum Postgre-Treiber. SQL JDBC

  • Python

    Eine beliebte Python-Bibliothek für die Verbindung zu SQL Postgre-Datenbanken istpsycopg2.

    Informationen zum Verwenden von psycopg2 finden Sie in der psycopg2-Dokumentation. Ein kurzes Tutorial zum Herstellen einer Verbindung zu einer SQL Postgre-Datenbank finden Sie im Psycopg2-Tutorial. Informationen zu den vom Verbindungsbefehl akzeptierten Optionen finden Sie unter psycopg2-Modulinhalte.

Wichtig

Nachdem Sie festgestellt haben, dass Ihre DatenbankverbindungenSSL/verwenden, TLS und Ihren Application Trust Store aktualisiert haben, können Sie Ihre Datenbank so aktualisieren, dass sie die rds-ca-rsa 2048-g1-Zertifikate verwendet. Anweisungen hierzu finden Sie in Schritt 3 unter Aktualisierung Ihres CA-Zertifikats durch Änderung Ihrer DB-Instance oder Ihres Clusters.