假设有一个 PostgreSQL 服务器正在运行并且它启用了 SSL。使用“标准”Linux 和 PostgreSQL 工具,如何检查其 SSL 证书?
我希望输出类似于您从 running 中获得的输出openssl x509 -text ...。而且我希望有一个单行或两行的命令行答案,这样我就不必求助于运行数据包嗅探器了。
我无权访问 PostgreSQL 服务器,因此无法直接查看其配置文件。
我没有超级用户登录,所以我无法获得ssl_cert_file设置的值,然后pg_read_file就可以了。
使用openssl s_client -connect ...不起作用,因为 PostgreSQL 似乎不想立即进行 SSL 握手。
通过快速查看psql文档,我找不到使其在启动时显示该信息的命令行参数。(虽然它确实向我展示了某些密码信息。)
我正在 Amazon RDS 上运行 PostgreSQL 9.4.x 实例。我可以使用类似于以下命令行的 SSL 成功连接到该服务器:
psql "host=x.y.z.rds.amazonaws.com dbname=aaa user=bbb sslmode=verify-full"
Run Code Online (Sandbox Code Playgroud)
如何强制客户端使用 SSL(使窃听更加困难)?以下情况应该无法连接:
psql "host=x.y.z.rds.amazonaws.com dbname=aaa user=bbb sslmode=disable"
Run Code Online (Sandbox Code Playgroud)
据我所知,在 Amazon RDS 上您无法编辑pg_hba.conf,因此我无法hostssl在其中添加条目。
这篇 AWS 博客文章建议了如何使用 MySQL 来完成此操作,但我找不到 PostgreSQL 类似信息的链接。
我的动机是防止自己(或其他用户)意外地通过网络传输未加密的敏感信息。