微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 spring-boot-data-redis 中使用生菜通过 ssl 连接到哨兵?

如何解决如何在 spring-boot-data-redis 中使用生菜通过 ssl 连接到哨兵?

我正在尝试使用 spring-boot-data-redis:2.2.4.RELEASE 连接到哨兵。

关于sentinel的配置例子很多,但是ssl就没有了。 如果我现在不使用 ssl 配置,我可以连接到 sentinel。

这是我的生菜配置代码

@Bean
public LettuceConnectionFactory redisConnectionFactory(
    RedisConfiguration redisConfiguration,@Value("${services.redis.tls:true}") boolean useTls,@Value("${services.redis.tls-path}") String certFilePath) {
    
    //some timeout configurations here
    //...

    ClientOptions.Builder clientOptionsBuilder =
        ClientOptions.builder().timeoutoptions(timeoutoptions);

    if (redisConfiguration instanceof RedisSentinelConfiguration) {
        SslOptions sslOptions = SslOptions.builder().truststore(new File(certFilePath)).build();
        clientOptionsBuilder = clientOptionsBuilder.sslOptions(sslOptions);
    }

    LettuceClientConfiguration.LettuceClientConfigurationBuilder configurationBuilder =
        LettuceClientConfiguration.builder();

    if (useTls) {
        configurationBuilder = configurationBuilder.useSsl().and();
    }

    LettuceClientConfiguration clientConfiguration =
        configurationBuilder.clientOptions(clientOptionsBuilder.build()).build();

    return new LettuceConnectionFactory(redisConfiguration,clientConfiguration);
}

如果我使用此配置,则会发生 SSLHandshakeException(等 handshake_failure)。

需要什么版本吗?我将 .jks 用于 certFilePath

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。