2014-05-07 21 views
5

Ich versuche, eine Verbindung zu RDS unter AWS (Amazon Web Services) mit SSL herzustellen. Ich habe begrenzte Informationen in PosgreSQL pgAdmin III-Dokumenten zu Feldern auf der Registerkarte SSL gesehen.PostgreSQL pgAdmin III SSL-Verbindung zur AWS RDS-Instanz

RDS-Instanzen sind standardmäßig so eingerichtet, dass SSL-Verbindungen akzeptiert werden.

Ich habe den öffentlichen Schlüssel von Amazon heruntergeladen und konvertiert sie von einem .pem zu einer .crt Datei mit OpenSSL. Auf der Registerkarte SSL in pgAdmin III habe ich den Pfad zur konvertierten Schlüsseldatei "Server Root Certificate File" eingegeben.

Ich kann eine Verbindung zur Instanz ohne Problem herstellen, aber es gibt keine Angabe, dass die Daten über SSL übertragen werden. AWS legt ihre RDS-Instanzen nicht so an, dass SSL ausschließlich verwendet wird. damit ich ohne SSL verbunden werde und es nicht weiß.

Zeigt pgAdmin III eine Anzeige an, wenn es mit SSL verbunden ist (wie ein Schlosssymbol)? Kann jemand weitere Informationen bereitstellen, die die Felder (SSL Dropdown, Client Cert File, Client Key) auf der Registerkarte SSL in pgAdmin III beschreiben?

Danke.

Antwort

-1

Ich habe SSL nicht mit PGAdmin auf AWS verwendet, aber ich habe auf einem Server, und ich kann Ihnen sagen, dass Sie wissen, wenn Sie über PGAdmin mit einem Server verbunden sind, bin ich mir nicht sicher, wie dort Mehrdeutigkeit ist, Können Sie die Datenbanken, Tabellen sehen?

Der unten stehende Beitrag kann Ihnen bei der Verbindung mit einem Server über SSL helfen.

Auf dem Client benötigen wir drei Dateien. Unter Windows müssen diese Dateien in% appdata% \ postgresql \ directory lauten. Für Linux ~/.postgresql/ Verzeichnis. root.crt (vertrauenswürdiges Stammzertifikat) postgresql.crt (Client Zertifikat) postgresql.key (private Schlüssel)

Generieren Sie die die benötigten Dateien auf dem Server, und kopieren Sie dann sich an den Client. Wir erzeugen die benötigten Dateien im Verzeichnis/tmp/ .

Erstellen Sie zunächst den privaten Schlüssel postgresql.key für den Clientcomputer und entfernen Sie die Passphrase.

openssl genrsa -des3 -out /tmp/postgresql.key 1024 

openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key 

Dann erstellen Sie das Zertifikat postgresql.crt. Es muss von unserem vertrauenswürdigen Stammverzeichnis signiert sein (das die private Schlüsseldatei auf dem Server verwendet). Außerdem muss der allgemeine Name des Zertifikats (CN) auf den Datenbankbenutzernamen festgelegt werden, mit dem wir eine Verbindung herstellen.

openssl req -new -key /tmp/postgresql.key -out /tmp/postgresql.csr -subj '/C=CA/ST=British Columbia/L=Comox/O=TheBrain.ca/CN=www-data' 

openssl x509 -req -in /tmp/postgresql.csr -CA root.crt -CAkey server.key -out /tmp/postgresql.crt -CAcreateserial 

Kopieren Sie die drei Dateien, die wir vom Server/tmp/Verzeichnis auf dem Client-Rechner erstellt.

Kopieren Sie das vertrauenswürdige Stammzertifikat root.crt von der Server-Maschine zu der Client-Maschine (für Windows pgAdmin% AppData% \ postgresql \ oder für Linux pgAdmin ~/.postgresql /).Ändern Sie die Dateiberechtigung postgresql.key, um den Zugriff auf nur Sie zu beschränken (wahrscheinlich nicht erforderlich auf Windows , da der eingeschränkte Zugriff bereits geerbt ist). Entfernen Sie die Dateien aus dem Verzeichnis Server/tmp /.

Von: http://www.howtoforge.com/postgresql-ssl-certificates

-1

Zuerst Login als postgresql Admin-Benutzer dann die folgende ausführen sslinfo auf RDS zu installieren:

create extension sslinfo; 

Um zu überprüfen, ob Sie über ssl verbunden sind einfach läuft die folgende Abfrage in Ihrer Sitzung:

Wenn es wahr (t) zurückgibt, dann sind Sie über SSL verbunden.

Verwandte Themen