spring.redis.ssl.enable=true是开启Redis SSL的唯一有效开关,需配合trust-store/key-store路径及密码等参数使用,且证书路径必须用classpath:或file:显式声明,集群模式下还需调大max-redirects并选用Lettuce驱动。

SpringBoot怎么配置Redis的SSL_在yml开启证书开关

spring.redis.ssl.enable 是开启 Redis SSL 的唯一开关

Spring Boot 2.4+ 版本起,spring.redis.ssl=true 已被弃用,必须改用 spring.redis.ssl.enable=true。如果只写 spring.redis.ssl=true,应用启动时不会报错,但实际连接仍走明文,Redis 日志里会出现 Client sent AUTH, but no password is set 类似提示(尤其在集群模式下),本质是 SSL 握手失败后降级重试导致的混淆。

这个配置项必须配合其他 SSL 参数一起生效,单独设为 true 会导致连接超时或 javax.net.ssl.SSLHandshakeException

证书路径必须用 classpath: 或 file: 显式声明

Spring Boot 不会自动推断证书位置。spring.redis.ssl.trust-store=redis-truststore.jks 这种写法无效,会被当成相对路径尝试加载,最终抛出 java.io.FileNotFoundException

正确写法只有两种:

注意:file: 路径必须是绝对路径;classpath: 后不能带斜杠开头,比如 classpath:/redis.jks 会失败。

Redis 集群 + SSL 需额外设置 max-redirects

开启 SSL 后,Jedis 或 Lettuce 在重定向时容易卡住,默认 spring.redis.cluster.max-redirects=1 不够用,尤其当集群节点分布在不同网络区域时,SSL 握手耗时增加,重试窗口变窄。

建议值设为 35,并确认客户端使用的驱动支持 SSL 重定向:

SSL 握手失败时最常被忽略的三个点

错误日志里出现 PKIX path building failedunable to find valid certification path to requested target,90% 是以下原因:

真正上线前,别只测通不通,要抓包确认 TCP 流里确实有 Change Cipher Spec 和加密载荷 —— 否则很可能只是“看起来连上了”,实则走的还是裸连。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。