我正在尝试设置与运行 postgresql 的服务器的远程数据库连接。我已经在远程服务器上使用 LE 证书运行 nginx。我的问题是 postgresql 证书是否需要由 CA(如 let's encrypt)签名,或者自签名证书是否足够。我试图了解使用自签名证书进行数据库连接时的安全风险是什么。
答案1
如果您控制连接的两端,那么自签名证书就完全没问题。您可以向客户端提供 CA 证书以供验证。
公共 CA 证书的存在是为了让尚未与您的服务器建立信任通信的客户端仍然会说“好的,这看起来像是由我信任的人签署的合法证书”。
重要的是至少使用并向客户端sslmode=verify-ca
提供 CA 证书,root.crt
以便它可以根据它检查服务器,并确保它正在进入它期望的服务器。verify-full
如果您使用只有一个主机拥有的自签名证书,则模式不是必需的,它可以使用由受信任的 CA 签名的合法但被盗的证书来防止 MiTM 攻击。
看手册。