视频

了解更多
我们正在更改部分安全措施。以下内容将帮助您顺利过渡。
作为我们持续改进 Redis 安全措施的承诺的一部分,我们很快将开始用由 公开信赖 的 GlobalSign 证书颁发机构颁发的短暂证书替换所有 Redis 云数据库 服务的 TLS 证书。
简而言之:更好的安全性。
较长的解释是,目前使用的 TLS 证书是由 自签名 证书颁发机构 (CA) 颁发的。这意味着没有可信的第三方验证这些证书是否代表 Redis 颁发。
不过,您无需担心。您仍然可以(并且应该!)下载我们的公共证书捆绑包,该捆绑包在 Redis 云 管理控制台 中发布。该捆绑包可以向您保证,Redis 真正签署了我们的数据库服务提供的证书。
但是,新的 TLS 证书是由名为 GlobalSign 的公开信赖的 CA 颁发的,这意味着您无需相信我们关于证书可信度的说法。
在此情况下,“公开信赖”至少意味着两件事
一旦我们推出 GlobalSign 证书,它们将作为“短暂”证书颁发。这被认为是一种安全最佳实践;问问您的 CISO!就我们而言,这意味着由我们的数据库服务提供给您的 Redis 客户端的 叶子证书 将有效期为三个月。我们将在证书到期日期之前很久自动轮换这些证书。
由于您的 Redis 客户端应该已经信赖 GlobalSign CA(稍后将详细介绍),因此在轮换这些叶子证书后,任何新的连接都应无缝建立;现有连接不应受到影响。
如果您没有在任何 Redis 云数据库上启用 TLS,则无需执行任何操作。
如果您当前在 Redis 云中启用了 TLS 的数据库,则应确保在更改前后您的 Redis 客户端将继续接受数据库证书。(请参阅以下内容了解如何执行此操作。)
那么您应该何时才能使用这些新证书?这取决于您的 Redis 云订阅层级以及您的订阅何时配置
层级 | 订阅配置日期 | 受影响日期 | 说明 |
---|---|---|---|
固定 | 任何时候 | 2023 年 4 月 15 日 | 所有固定层数据库当前仍提供旧的自签名证书。从 4 月 15 日起,这些证书将逐渐被新的 GlobalSign 证书替换。 |
灵活 | 2022 年 11 月 30 日之前 | 2023 年 7 月 1 日 | 任何在 2022 年 11 月 30 日之前配置订阅的灵活层数据库当前仍提供旧的自签名证书。从 7 月 1 日开始,这些证书将逐渐被新的 GlobalSign 证书替换。 |
灵活 | 2022 年 11 月 30 日之后 | 不适用 | 任何在 2022 年 11 月 30 日或之后配置订阅的灵活层数据库已经收到新的证书。如果您的 Redis 客户端目前可以通过 TLS 连接,则无需执行任何操作。 |
如果您的 Redis 客户端配置为验证数据库提供的证书(并非总是如此),则它会尝试确认证书是否由其信赖的链签署。通常,这种信赖是通过直接将数据库证书的公共链提供给您的 Redis 客户端,或将其添加到客户端的信赖存储(取决于您的环境,这可能是您的操作系统或 Kubernetes 信赖存储,或者是一个 jks 文件)来建立的。
例如,使用 redis-cli ,您可以将数据库的公共链提供给客户端,如以下示例所示。 cacert 参数应指向包含以 PEM 格式存储的公共数据库证书的文件
~ redis-cli -h <host> -p <port> --tls --cacert <path to>/redis_ca.pem
如上所述,Redis 云数据库的公共证书在 Redis 云管理控制台中发布,您可以从“帐户设置”和“数据库配置”页面访问该控制台。(有关详细信息,请参阅 TLS 文档。)如果您在 2022 年 8 月之后任何时间下载了此公共链,则 PEM 文件将包含旧的自签名证书链以及新 GlobalSign 证书的根 CA。如果您在 2022 年 8 月之前下载了此公共链,请确保下载最新版本并更新您的 Redis 客户端信赖存储。
为了确保安全,您可以使用随 Java 附带的 keytool 检查此 PEM 捆绑包。在 Linux 上,您可以使用 certtool。它看起来像这样
~ keytool -printcert -file <path to>/redis_ca.pem | grep "Owner:"
Owner: CN=SSL Certification Authority, O=Garantia Data
Owner: CN=RCP Intermediate Certificate Authority, O=RedisLabs, ST=CA, C=US
Owner: CN=RedisLabs Root Certificate Authority, O=RedisLabs, L=CA, ST=CA, C=US
Owner: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R3
PEM 捆绑包应包含四个证书:GlobalSign 根 CA,以及用于固定和灵活层订阅的旧证书的三个自签名证书链。
如果您的客户端信赖存储包含所有四个证书,则您应该是安全的;一旦我们开始迁移到 GlobalSign 证书,您就可以顺利过渡。如果您的 Redis 客户端信赖存储不包含 GlobalSign 根 CA 证书,请立即采取措施以确保您的客户端在迁移后不会拒绝 TLS 连接。
如果您受到影响,并且您的 Redis 客户端在过渡后不信任 GlobalSign 颁发的证书,那么您的 Redis 客户端可能会开始拒绝连接到您的数据库。
如果您目前根本没有使用 TLS,则无需执行任何操作。如果您在将来的某个时间想启用 TLS,请确保在那个时候下载 Redis 云 CA 公共证书 PEM 捆绑包并将其提供给您的 Redis 客户端。
在 2022 年 11 月 30 日之后创建订阅的任何灵活层数据库都使用 GlobalSign 颁发的新的 TLS 证书进行配置。因此,如果您目前可以通过 TLS 成功连接,那么您应该是安全的。
*请注意,固定层数据库仍将经历过渡。请确保您的 Redis 客户端的信赖存储包含旧的和新的 GlobalSign 链的公共证书。
如果您的 Redis 客户端使用在 2022 年 8 月或之后下载的 Redis 云 PEM 捆绑包,那么原则上您应该是安全的。我们仍然建议您花时间确保该捆绑包包含 GlobalSign 根 CA。(没有人喜欢意外。尤其是不好的意外。)
您可以使用随 Java 附带的 keytool 检查此 PEM 捆绑包
~ keytool -printcert -file <path to>/redis_ca.pem | grep "Owner:"
Owner: CN=SSL Certification Authority, O=Garantia Data
Owner: CN=RCP Intermediate Certificate Authority, O=RedisLabs, ST=CA, C=US
Owner: CN=RedisLabs Root Certificate Authority, O=RedisLabs, L=CA, ST=CA, C=US
Owner: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R3
或者,在 Linux 上,您也可以 使用 certtool。
您可以使用随 Java 附带的 keytool 检查您从 Redis 云下载的 PEM 捆绑包,并查找 GlobalSign 颁发的证书编号 4 的前几行
~ keytool -printcert -file <path to>/redis_ca.pem
[...]
Certificate[4]:
Owner: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R3
Issuer: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R3
Serial number: 4000000000121585308a2
Valid from: Wed Mar 18 12:00:00 IST 2009 until: Sun Mar 18 12:00:00 IST 2029
Certificate fingerprints:
SHA1: D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:AD
[...]
现在,将 PEM 捆绑包中证书的 SHA1 指纹与 GlobalSign 根证书 的官方发布中的 R3 GlobalSign 根证书的指纹进行比较。如果指纹匹配,则可以确保 PEM 捆绑包中的证书确实是 GlobalSign 发布的 R3 根 CA 的公共证书。
如果您在 2022 年 8 月或之后下载了它,则 PEM 捆绑包包含以下四个证书
编号 | 颁发机构 | 说明 | 到期日期 |
---|---|---|---|
1 | SSL 证书颁发机构 | 固定根 CA(自签名) | 2023 年 9 月 |
2 | RCP 中间证书颁发机构 | 灵活中间 | 2028 年 2 月 |
3 | RedisLabs 根证书颁发机构 | 灵活根 CA(自签名) | 2038 年 2 月 |
4 | GlobalSign | GlobalSign 根 CA | 2029 年 3 月 |
我们现在要求您进行的更改是信赖 GlobalSign 根 CA(如果您的 Redis 客户端尚未信赖它)。此 GlobalSign 根 CA 应该在 2029 年 3 月之前有效,因此,如果我们在那时之前留出一些时间,那么我们可能在未来五年内不会要求您更换它。
您可以使用 openssl 包来实现,如下所示。如果发行机构不是 GlobalSign,则您的数据库尚未收到短期证书。
~ openssl s_client -showcerts -connect \
<hostname>:<port> 2> /dev/null < /dev/null | grep '^issuer'
如果您成功确认您的数据库向您的 Redis 客户端提供了一个由 GlobalSign 信任链颁发的证书(见上文),则可以安全地从信任存储中删除其他 Redis 自签名公共证书。一旦整个 Redis Cloud 集群迁移到新证书,我们将在 Redis Cloud 管理控制台中发布一个新的 PEM 包,其中只包含相关的 GlobalSign 根 CA。
您在 Redis Cloud 控制台中为“TLS 客户端身份验证”创建的证书属于 redis_user.crt 和 redis_user_private.key 文件,通过该证书数据库验证您的客户端。这些客户端证书不受此更改的影响(尽管客户端证书也会过期,应及时更换)。