Spring集成Redis中禁用主机名DNS检测

问题

最近使用ssh隧道代理redis服务器。在Spring中正常配置了ssl方式连接redis后,出现了如下错误:

Caused by: java.security.cert.CertificateException: No subject alternative DNS name matching localhost found.

Spring连接redis配置如下:

yaml 复制代码
spring: 
  # redis 配置
  redis:
    # 地址
    host: localhost
    # 端口,默认为6379
    port: 6379
    # 数据库索引
    database: 0
    # 密码
    password: xxxx
    # 连接超时时间
    timeout: 10s
    lettuce:
      pool:
        # 连接池中的最小空闲连接
        min-idle: 0
        # 连接池中的最大空闲连接
        max-idle: 8
        # 连接池的最大数据库连接数
        max-active: 8
        # #连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1ms
    ssl: true

解决

配置一个redis类,将禁用DNS检测,内容如下:

java 复制代码
package com.xxx.web.core.config;

import org.springframework.boot.autoconfigure.data.redis.LettuceClientConfigurationBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RedisSslConfig {
    @Bean
    public LettuceClientConfigurationBuilderCustomizer lettuceClientCustomizer() {
        return builder -> builder
                .useSsl()
                .disablePeerVerification(); // <== 禁用主机名校验 生产和UAT环境不能使用该配置
    }
}

注意,这是老版本的Spring就只能这样配置了。生产环境是不会存在这样的问题的,生产环境可以直接访问redis集群的,这里只是为了解决开发环境SSH隧道代理Redis集群问题。

总结

我这里是老Spring版本配置而已。

参考

相关推荐
直奔標竿3 小时前
Java开发者AI转型第二十七课!Spring AI 个人知识库实战(六)——全栈闭环收官,解锁前端流式渲染终极技巧
java·开发语言·前端·人工智能·后端·spring
虹科网络安全5 小时前
艾体宝产品|深度解读 Redis 8.4 新增功能:原子化 Slot 迁移(上)
数据库·redis·bootstrap
虹科网络安全8 小时前
艾体宝新闻|Redis 月度更新速览:2026 年 3 月
数据库·redis·缓存
空中海9 小时前
Spring Cloud 专家级面试题库
spring·spring cloud·面试
y = xⁿ10 小时前
Redis八股学习日记:布隆过滤器
数据库·redis·学习
直奔標竿10 小时前
SpringAI + RAG + MCP + Agent 零基础全栈实战(完结篇)| 27课完整汇总,Java开发者AI转型必看
java·开发语言·人工智能·spring boot·后端·spring
云烟成雨TD10 小时前
Spring AI 1.x 系列【31】向量数据库:进阶使用指南
java·人工智能·spring
counting money11 小时前
Spring框架基础(依赖注入-全注解形式)
java·数据库·spring
S1998_1997111609•X12 小时前
论next/js在打击省份及犯罪行为集团的系统分析[特殊字符]设计
网络·数据库·百度·ssh·开闭原则
counting money12 小时前
Spring框架基础(依赖注入-半注解形式)
java·后端·spring