ssl如何在psql中工作?

问题描述 投票:0回答:1

在AWS RDS postgresql服务器端ssl已被强制使用以下配置值。

rds.force_ssl   1
ssl 1

[当我尝试不指定sslmode和sslrootcert而连接到Postgres RDS主机时,它允许ssl连接。

psql -h hostname.us-east-1.rds.amazonaws.com -p 5432 --user=username
psql (10.10 (Ubuntu 10.10-0ubuntu0.18.04.1), server 10.6)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

username=>

由于我未指定sslmode,因此已采用默认的sslmode,这是首选。我想知道:

  1. 它如何加密传输到服务器的数据?
  2. 在将数据包发送到服务器之前如何选择ssl协议,ssl密码和压缩?
  3. 由于我未指定任何sslrootcert,它与服务器进行的ssl握手是否采用任何默认证书?

请解释。

postgresql amazon-web-services ssl amazon-rds psql
1个回答
0
投票
  1. 不是“ ECDHE-RSA-AES256-GCM-SHA384”的答案吗?如果没有,您可以扩大您的问题吗?
  2. 据我所知,这只是外包给ssl库。 PostgreSQL除了传递配置选项外,没有做任何特殊的事情。
  3. 如果在默认位置找到sslrootcert,它将从默认位置获取sslrootcert(在这种情况下,如果您不遗余力地在此处放置适当的内容,则验证可能会失败)。但是,如果找不到一个,那么您基本上只会得到Diffie-Hellman保护。它不会验证服务器的证书是否实际上已由声明的CA签名,也不会验证证书“属于”服务器的主机名。您只能从窃听程序中获得保护,而不能从MITM中获得保护。如果客户端需要MITM保护,则必须将sslmode设置为高于'require'的级别。

没有实现服务器可以强制客户端验证服务器证书的机制。

© www.soinside.com 2019 - 2024. All rights reserved.