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.
Themen
- Feststellen, ob Anwendungen mithilfe von Verbindungen zu SQL Postgre-DB-Instances herstellen SSL
- Ermitteln, ob ein Client zum Herstellen von Verbindungen Zertifikatverifizierungen erfordert
- Aktualisieren des Trust Stores Ihrer Anwendung
- Verwenden von SSL TLS /-Verbindungen für verschiedene Arten von Anwendungen
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
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 ist
psycopg2
.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.