PostgreSQL pgAdmin III与AWS RDS实例的SSL连接

use*_*316 6 postgresql ssl amazon-web-services

我正在尝试使用SSL连接到在AWS(Amazon Web Services)上运行的RDS .我在PosgreSQL pgAdmin III文档中看到了有关SSL选项卡上字段的有限信息.

RDS实例默认设置为接受SSL连接.

我从亚马逊下载了公钥,并使用openSSL 将其从.pem一个.crt文件转换为一个文件.在pgAdmin III的SSL选项卡上,我输入了转换后的密钥文件"服务器根证书文件"字段的路径.

我可以毫无问题地连接到实例,但没有迹象表明数据是通过SSL传输的.AWS没有将其RDS实例设置为独占使用SSL,因此我可以在不使用SSL的情况下进行连接而不知道它.

pgAdmin III在使用SSL连接时是否显示任何指示(如锁定图标)?任何人都可以在pgAdmin III的SSL选项卡上提供描述字段(SSL下拉列表,客户端证书文件,客户端密钥)的其他信息吗?

谢谢.

rap*_*ael -1

我没有在AWS上使用SSL和PGAdmin,但我在服务器上使用过,我可以告诉你,你知道当你通过PGAdmin连接到服务器时,我不确定那里有什么歧义,你能看到数据库、表格?

下面引用的帖子可能会帮助您通过 SSL 连接到服务器。

在客户端,我们需要三个文件。对于 Windows,这些文件必须位于 %appdata%\postgresql\ 目录中。对于 Linux ~/.postgresql/ 目录。root.crt(受信任的根证书) postgresql.crt(客户端证书) postgresql.key(私钥)

在服务器上生成所需的文件,然后将其复制到客户端。我们将在 /tmp/ 目录中生成所需的文件。

首先为客户端计算机创建私钥 postgresql.key,并删除密码。

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

openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key
Run Code Online (Sandbox Code Playgroud)

然后创建证书postgresql.crt。它必须由我们的可信根(使用服务器计算机上的私钥文件)签名。此外,证书公用名 (CN) 必须设置为我们将连接的数据库用户名。

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
Run Code Online (Sandbox Code Playgroud)

将我们创建的三个文件从服务器 /tmp/ 目录复制到客户端计算机。

将受信任的根证书 root.crt 从服务器计算机复制到客户端计算机(对于 Windows pgadmin %appdata%\postgresql\ 或对于 Linux pgadmin ~/.postgresql/)。更改 postgresql.key 的文件权限以将访问权限限制为只有您(在 Windows 上可能不需要,因为受限访问权限已被继承)。从服务器 /tmp/ 目录中删除文件。

来自: http: //www.howtoforge.com/postgresql-ssl-certificates