繁体   English   中英

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

[英]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 /目录中删除文件。

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

首先,以postgresql管理员用户身份登录,然后运行以下命令在RDS上安装sslinfo:

create extension sslinfo;

要验证您是否通过ssl连接,只需在会话中运行以下查询:

select ssl_is_used(); 

如果它返回true(t),那么您通过SSL连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM