您的位置:首页 >SpringBoot配置Redis SSL及YML开启证书
发布于2026-04-07 阅读(0)
扫一扫,手机访问
spring.redis.ssl.enable=true是开启Redis SSL的唯一有效开关,需配合trust-store/key-store路径及密码等参数使用,且证书路径必须用classpath:或file:显式声明,集群模式下还需调大max-redirects并选用Lettuce驱动。

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。
spring.redis.ssl.enable=true —— 必须显式启用spring.redis.ssl.trust-store 或 spring.redis.ssl.key-store 至少提供其一(单向认证只需 trust-store)spring.redis.ssl.trust-store-password 和 spring.redis.ssl.key-store-password 按需填写,空密码也要显式写 ""Spring Boot 不会自动推断证书位置。spring.redis.ssl.trust-store=redis-truststore.jks 这种写法无效,会被当成相对路径尝试加载,最终抛出 java.io.FileNotFoundException。
正确写法只有两种:
src/main/resources 下:用 classpath:redis-truststore.jksfile:/etc/ssl/redis/redis-truststore.jks注意:file: 路径必须是绝对路径;classpath: 后不能带斜杠开头,比如 classpath:/redis.jks 会失败。
开启 SSL 后,Jedis 或 Lettuce 在重定向时容易卡住,默认 spring.redis.cluster.max-redirects=1 不够用,尤其当集群节点分布在不同网络区域时,SSL 握手耗时增加,重试窗口变窄。
建议值设为 3 或 5,并确认客户端使用的驱动支持 SSL 重定向:
JedisCluster 构造参数)spring-boot-starter-data-redis 默认就是它,且对 SSL 集群重定向兼容更好jedis,否则可能触发 ClassCastException: SslConnectionProvider cannot be cast to ConnectionProvider错误日志里出现 PKIX path building failed 或 unable to find valid certification path to requested target,90% 是以下原因:
keytool -importcert -file ca.crt -keystore redis-truststore.jks 补全Subject Alternative Name (SAN) 不匹配 —— 开发环境可临时加 spring.redis.ssl.verify-mode=none(仅限测试)-Djdk.tls.client.protocols=TLSv1.2,TLSv1.3真正上线前,别只测通不通,要抓包确认 TCP 流里确实有 Change Cipher Spec 和加密载荷 —— 否则很可能只是“看起来连上了”,实则走的还是裸连。
上一篇:显示器无信号解决方法大全
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9