可以使用传输层安全性(TLS)将客户端应用程序连接到 Azure Database for PostgreSQL 灵活服务器,以前称为安全套接字层(SSL)。 TLS 是一种行业标准协议,可确保在数据库服务器与客户端应用程序之间实现加密的网络连接,使你能够满足合规性要求。
Azure Database for PostgreSQL 灵活服务器支持使用传输层安全性(TLS 1.2+)的加密连接。 尝试使用 TLS 1.0 和 TLS 1.1 加密流量的所有传入连接均被拒绝。
对于所有 Azure Database for PostgreSQL 弹性服务器实例,启用了 TLS 连接的强制实施。
注释
默认情况下,强制执行客户端和服务器之间的安全连接。 如果要禁用 TLS/SSL 强制实施,同时允许加密和未加密的客户端通信,可以将服务器参数 require_secure_transport
更改为 OFF
。 还可以通过设置服务器参数来设置 ssl_max_protocol_version
TLS 版本。
需要 TLS/SSL 连接证书验证的应用程序
在某些情况下,应用程序需要从受信任的证书颁发机构(CA)证书文件生成的本地证书文件,以便它们可以安全地连接。 有关下载根 CA 证书的详细信息,请参阅 在客户端上配置 SSL。
本作说明文档中介绍了如何使用新的根 CA 证书更新客户端应用程序证书存储的详细信息。
注释
Azure Database for PostgreSQL 灵活服务器不支持 自定义 SSL\TLS 证书。
使用 psql 进行连接
如果创建了具有 专用访问(VNet 集成) 网络模式的 Azure Database for PostgreSQL 灵活服务器,则必须从服务器所在的同一虚拟网络中的资源连接到服务器,或者从可将流量路由到在其中集成服务器的虚拟网络的服务器。
如果已使用 公共访问(允许的 IP 地址)创建了 Azure Database for PostgreSQL 灵活服务器实例,则可以使用公共 IP 地址添加防火墙规则,以便可以连接到服务器。 或者,可以创建实例的专用终结点,并通过该专用终结点进行连接。
以下示例演示如何使用 psql 命令行接口连接到服务器。 使用 sslmode=verify-full
连接字符串设置强制实施 TLS/SSL 证书验证。 将本地证书文件路径传递给 sslrootcert
参数。
psql "sslmode=verify-full sslrootcert=c:\\ssl\DigiCertGlobalRootCA.crt.pem host=mydemoserver.postgres.database.chinacloudapi.cn dbname=postgres user=myadmin"
注释
确认传递给 sslrootcert
的值与你保存的证书的文件路径匹配。
确保应用程序或框架支持 TLS 连接
某些将 PostgreSQL 用于其数据库服务的应用程序框架在安装过程中默认不启用 TLS。 Azure Database for PostgreSQL 灵活服务器强制实施 TLS 连接,但如果应用程序未针对 TLS 进行配置,则应用程序可能无法连接到数据库服务器。 请参阅应用程序的文档,了解如何启用 TLS 连接。