我有一个Heroku PostgreSQL数据库。使用Heroku提供的凭据(主机,数据库,用户名,密码),我可以使用PSequel客户端从本地计算机连接。由于Heroku需要SSL,我必须检查"使用SSL",这会导致出现其他字段(客户端密钥,客户端证书,服务器根证书)。但是,Heroku不提供此类证书。我可以通过勾选"使用SSL"来连接数据库,但不向PSequel提供这些证书。
这是如何工作的?我的印象是SSL连接需要证书。没有证书,我的理解是你可以进行密钥交换并加密,但你不知道你在跟谁交谈,所以你很容易受到中间人攻击。根据我的理解,我不能用SSL连接我的Heroku PostgreSQL数据库,或者我错了?
过去,我使用过Google Cloud SQL(MySQL)和Sequel Pro。在该设置中,我将我的Cloud SQL设置设置为需要SSL,并且Google向我提供了证书(客户端密钥,客户端证书和服务器CA),然后我将其提供给Sequel Pro以便使用SSL进行连接。如果我尝试连接而不提供证书(但是检查"使用SSL连接"并输入正确的主机,用户名,密码),我无法连接,而是获得"访问权限否认"
答案 0 :(得分:0)
你应该ask PSequel,因为这不是开源的,所以我看不到代码。
通常,当PostgreSQL服务器设置为SSL连接时,客户端可以使用连接选项sslmode=require
强制进行SSL连接,并且您不需要拥有客户端证书(使用SSL)然后加密,而不是验证)。