2014-05-07 91 views
5

我试图使用SSL连接到在AWS(亚马逊网络服务)上运行的RDS。我在PosgreSQL pgAdmin III文档中看到有关SSL选项卡上字段的信息有限。PostgreSQL pgAdmin III到AWS RDS实例的SSL连接

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

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

我可以连接到实例没有问题但没有迹象表明数据正在通过SSL传输AWS不会将其RDS实例设置为独占使用SSL,因此我可能无需使用SSL即可连接,但不知道它。

确实的pgAdmin III表明,当它使用SSL (如一个锁形图标)连接任何迹象? 任何人都可以提供描述pgAdmin III中SSL选项卡上的字段(SSL下拉,客户端证书文件,客户端密钥)的其他信息?

谢谢。

回答

-1

我还没有在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 

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

复制来自服务器的可信根证书root.crt中到 客户端机器(适用于Windows的pgAdmin%APPDATA%\的PostgreSQL \或Linux的 pgAdmin的〜/ .postgresql /)。更改 postgresql.key的文件权限以限制对您的访问(由于受限访问已被继承,因此可能不需要访问 Windows)。从服务器/ tmp /目录中删除 文件。

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

-1

首先,登录为您的PostgreSQL管理用户然后运行以下对RDS安装sslinfo:

create extension sslinfo; 

要验证,如果你通过SSL连接只需运行以下查询会话:

select ssl_is_used(); 

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

相关问题