Timescale Cloud:性能、规模、企业级

自托管产品

MST

Timescale 的默认连接字符串使用安全套接字层 (SSL) 模式 require。用户可以选择在连接到数据库时不使用传输层安全 (TLS),但强烈不建议在没有加密的情况下连接到生产数据库。为了实现更强的安全性,客户端可以选择验证服务器的身份。如果您希望连接客户端验证服务器身份,可以使用 verify-caverify-fullSSL 模式。为此,您需要将证书链副本存储在连接工具可以找到的位置。

本节提供了设置更严格 SSL 连接的说明。

作为安全连接协议的一部分,服务器通过向客户端提供证书来证明其身份。此证书应由知名且受信任的证书颁发机构颁发和签名。

由于向证书颁发机构请求证书需要一些时间,Timescale 数据库会使用自签名证书进行初始化。这使您可以立即启动数据库。服务启动后,后台会请求签名证书。新证书通常在 30 分钟内收到。然后您的数据库证书会被替换,几乎没有中断。连接会重置,并且大多数客户端会自动重新连接。

使用签名证书,您可以将连接切换到更严格的 SSL 模式,例如 verify-caverify-full

有关不同 SSL 模式的更多信息,请参阅 PostgreSQL SSL 模式说明

设置更严格的 SSL 连接

  1. 生成证书链副本并将其存储在正确位置
  2. 更改您的 Timescale 连接字符串
  1. 使用 openssl 工具连接到您的 Timescale 服务并获取证书包。将此包存储在名为 bundle.crt 的文件中。

    $SERVICE_URL_WITH_PORT 替换为您的 Timescale 连接 URL

    openssl 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
  2. 将证书包复制到剪贴板

  3. 访问 https://whatsmychaincert.com/。此在线工具会生成完整的证书链,包括根证书颁发机构证书,而数据库返回的证书包中不包含该根证书。

  4. 将您的证书包粘贴到提供的框中。勾选 Include Root Certificate(包含根证书)。点击 Generate Chain(生成链)。

  5. 将下载的证书链保存到 ~/.postgresql/root.crt

  6. 将 Timescale 连接字符串从 sslmode=require 更改为 sslmode=verify-fullsslmode=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 上编辑此页面