在 Azure Cosmos DB for PostgreSQL 中配置 TLS
适用对象: Azure Cosmos DB for PostgreSQL(由 PostgreSQL 的 Citus 数据库扩展提供支持)
协调器节点要求客户端应用程序与传输层安全性 (TLS) 连接。 通过在数据库服务器与客户端应用程序之间强制执行 TLS,可以在传输过程中保持数据的机密性。 下面描述的额外验证设置也可以防止“中间人”攻击。
强制实施 TLS 连接
应用程序使用“连接字符串”来标识连接的目标数据库和设置。 不同的客户端需要不同的设置。 若要查看常见客户端使用的连接字符串的列表,请参阅 Azure 门户中群集的“连接字符串”部分。
TLS 参数 ssl
和 sslmode
因连接器的功能而异(例如 ssl=true
、sslmode=require
或 sslmode=required
)。
确保应用程序或框架支持 TLS 连接
某些应用程序框架没有为 PostgreSQL 连接默认启用 TLS。 但是,如果没有安全连接,应用程序将无法连接到协调器节点。 请查阅应用程序文档,了解如何启用 TLS 连接。
需要证书验证才可启用 TLS 连接性的应用程序
在某些情况下,应用程序需要具备从受信任的证书颁发机构 (CA) 证书文件 (.cer) 生成的本地证书文件才能实现安全连接。 用于连接到 Azure Cosmos DB for PostgreSQL 的证书位于 https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem。 下载证书文件并将其保存到首选位置。
注意
若要检查证书的真伪,可以使用 OpenSSL 命令行工具来验证其 SHA-256 指纹:
openssl x509 -in DigiCertGlobalRootG2.crt.pem -noout -sha256 -fingerprint
# should output:
# CB:3C:CB:B7:60:31:E5:E0:13:8F:8D:D3:9A:23:F9:DE:47:FF:C3:5E:43:C1:14:4C:EA:27:D4:6A:5A:B1:CB:5F
使用 psql 进行连接
下面的示例展示了如何使用 psql 命令行实用工具来连接到协调器节点。 使用 sslmode=verify-full
连接字符串设置来强制执行 TLS 证书验证。 将本地证书文件路径传递给 sslrootcert
参数。
下面是 psql 连接字符串示例:
psql "sslmode=verify-full sslrootcert=DigiCertGlobalRootG2.crt.pem host=c-mydemocluster.12345678901234.postgres.cosmos.chinacloudapi.cn dbname=citus user=citus password=your_pass"
提示
确认传递给 sslrootcert
的值与你保存的证书的文件路径匹配。
注意
对于密码,使用连接密码或 Microsoft Entra ID 令牌。 有关详细信息,请参阅身份验证选项。
后续步骤
使用 Azure Cosmos DB for PostgreSQL 中的防火墙规则进一步提高安全性。