为何无需证书文件也能建立与AWS RDS Aurora PostgreSQL的SSL连接?
为什么未指定sslrootcert仍能连接加密的Aurora PostgreSQL实例
这主要由PostgreSQL客户端默认行为、RDS实例SSL配置及系统信任存储三个因素共同导致:
PostgreSQL客户端默认sslmode行为
psql客户端默认sslmode值为prefer,该模式下客户端会优先尝试与服务器建立SSL连接,仅当服务器不支持SSL时才降级为非SSL连接。你的Aurora PostgreSQL实例默认支持SSL,因此即使不手动指定sslmode,客户端也会自动发起SSL连接请求。系统信任存储已预装AWS RDS CA证书
多数现代操作系统(如主流Linux发行版、macOS)的系统信任存储中已预装Amazon根CA证书。psql建立SSL连接时,会自动从系统信任存储中查找可信任的根证书验证RDS服务器的SSL证书,无需手动指定sslrootcert参数即可完成验证。RDS实例未强制SSL连接
你的实例启用的是静态数据加密(存储层面加密),若未在RDS参数组中设置rds.force_ssl=1强制SSL连接,服务器会同时接受SSL与非SSL连接请求。结合客户端prefer的默认行为,就会自动建立SSL连接。
若要确保连接为严格验证服务器身份的SSL连接,建议显式指定sslmode=verify-full与对应sslrootcert参数,规避中间人攻击风险。
内容的提问来源于stack exchange,提问作者Yang L
相关产品推荐
相关产品推荐

