[英]PostgreSQL pgAdmin III SSL connection to AWS RDS instance
我正在尝试使用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下拉列表,客户端证书文件,客户端密钥)的其他信息吗?
谢谢。
我没有在AWS上使用带有PGAdmin的SSL,但我在服务器上,我可以告诉你,你知道当你通过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
然后创建证书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
将我们创建的三个文件从server / tmp /目录复制到客户端计算机。
将受信任的根证书root.crt从服务器计算机复制到客户端计算机(对于Windows pgadmin%appdata%\\ postgresql \\或对于Linux pgadmin~ / .postgresql /)。 更改postgresql.key的文件权限以限制对您的访问(在Windows上可能不需要,因为已经继承了受限访问)。 从server / tmp /目录中删除文件。
首先,以postgresql管理员用户身份登录,然后运行以下命令在RDS上安装sslinfo:
create extension sslinfo;
要验证您是否通过ssl连接,只需在会话中运行以下查询:
select ssl_is_used();
如果它返回true(t),那么您通过SSL连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.