Timescale Cloud:性能、规模、企业级
自托管产品
MST
Timescale 的默认连接字符串使用安全套接字层 (SSL) 模式 require
。用户可以选择在连接到数据库时不使用传输层安全 (TLS),但强烈不建议在没有加密的情况下连接到生产数据库。为了实现更强的安全性,客户端可以选择验证服务器的身份。如果您希望连接客户端验证服务器身份,可以使用 verify-ca
或 verify-full
的 SSL 模式。为此,您需要将证书链副本存储在连接工具可以找到的位置。
本节提供了设置更严格 SSL 连接的说明。
作为安全连接协议的一部分,服务器通过向客户端提供证书来证明其身份。此证书应由知名且受信任的证书颁发机构颁发和签名。
由于向证书颁发机构请求证书需要一些时间,Timescale 数据库会使用自签名证书进行初始化。这使您可以立即启动数据库。服务启动后,后台会请求签名证书。新证书通常在 30 分钟内收到。然后您的数据库证书会被替换,几乎没有中断。连接会重置,并且大多数客户端会自动重新连接。
使用签名证书,您可以将连接切换到更严格的 SSL 模式,例如 verify-ca
或 verify-full
。
有关不同 SSL 模式的更多信息,请参阅 PostgreSQL SSL 模式说明。
设置更严格的 SSL 连接
- 生成证书链副本并将其存储在正确位置
- 更改您的 Timescale 连接字符串
使用
openssl
工具连接到您的 Timescale 服务并获取证书包。将此包存储在名为bundle.crt
的文件中。将
$SERVICE_URL_WITH_PORT
替换为您的 Timescale 连接 URLopenssl s_client -showcerts -partial_chain -starttls postgres \-connect $SERVICE_URL_WITH_PORT < /dev/null 2>/dev/null | \awk '/BEGIN CERTIFICATE/,/END CERTIFICATE/{ print }' > bundle.crt将证书包复制到剪贴板
访问 https://whatsmychaincert.com/
。此在线工具会生成完整的证书链,包括根证书颁发机构证书,而数据库返回的证书包中不包含该根证书。
将您的证书包粘贴到提供的框中。勾选
Include Root Certificate
(包含根证书)。点击Generate Chain
(生成链)。将下载的证书链保存到
~/.postgresql/root.crt
。将 Timescale 连接字符串从
sslmode=require
更改为sslmode=verify-full
或sslmode=verify-ca
。例如,要使用psql
连接到数据库,请运行psql "postgres://tsdbadmin@$SERVICE_URL_WITH_PORT/tsdb?sslmode=verify-full"
要检查证书是否已被替换,请连接到数据库实例并检查返回的证书。我们使用两个证书提供商——Google 和 ZeroSSL,因此您很可能会获得由其中任何一个 CA 颁发的证书。
openssl s_client -showcerts -partial_chain -starttls postgres -connect <HOST>:<PORT> < /dev/null 2>/dev/null | grep "Google\|ZeroSSL"
关键词
此页面有问题?报告问题 或 在 GitHub 上编辑此页面
。