Redisson не может подключиться по SSL, Lettuce — нет.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Redisson не может подключиться по SSL, Lettuce — нет.

Сообщение Anonymous »

Мы пытаемся защитить наше соединение ElastiCache/Redis с помощью SSL. Частью этого является ИТ-тестирование док-контейнера Redis, защищенного SSL. В контейнере есть все необходимые файлы сертификатов и ключей, а безопасное соединение с redis-cli возможно без проблем.
Мы создали хранилище ключей и хранилище доверенных сертификатов для использования с нашим клиентом Redisson. и используйте это следующим образом:

Код: Выделить всё

@Bean(destroyMethod = "shutdown")
public RedissonClient redissonClient() throws MalformedURLException {
File truststore = new File("docker/certs/truststore.jks");
File keystore = new File("docker/certs/redis_key_store.p12");

Config config = new Config();
//SingleServerConfig singleServerConfig = config.useSingleServer();
ReplicatedServersConfig elasticacheServersConfig = config.useReplicatedServers();
elasticacheServersConfig
.setSslProtocols(new String[]{"TLSv1.3"})
.setSslCiphers(new String[] { "TLS_AES_256_GCM_SHA384", "TLS_CHACHA20_POLY1305_SHA256", "TLS_AES_128_GCM_SHA256" })
.setSslEnableEndpointIdentification(false)
.setSslKeystorePassword("password")
.setSslKeystore(keystore.toURI().toURL())
.setSslTruststorePassword("password")
.setSslTruststore(truststore.toURI().toURL())
.setPassword("password");

redisEndpoints()
.stream()
.map(endpoint -> "rediss://" + endpoint.getAddress() + ":" + endpoint.getPort())
.forEach(elasticacheServersConfig::addNodeAddress);

return Redisson.create(config);
}
Однако ему не удается подключиться из-за этих журналов на стороне сервера: Ошибка принятия клиентского соединения: ошибка: 0A000416: Подпрограммы SSL:: Сертификат предупреждения sslv3 неизвестен. Быстрый поиск показал мне, что это проблема сервера, но не на 100% ясно, связано ли это с сертификатами/ключами (см. ниже, почему мы так считаем)
Когда я используйте то же хранилище доверенных сертификатов и хранилище ключей в салате, это подключается без проблем. Код для этого такой:

Код: Выделить всё

@Bean
public RedisConnectionFactory redisConnectionFactory() {
File truststore = new File("docker/certs/truststore.jks");
File keystore = new File("docker/certs/redis_key_store.p12");

var endpoint = new Endpoint().withAddress("127.0.0.1").withPort(63798);
final RedisStandaloneConfiguration redisStandaloneConfiguration =
new RedisStandaloneConfiguration(endpoint.getAddress(), endpoint.getPort());
redisStandaloneConfiguration.setPassword("password");

final LettuceClientConfiguration.LettuceClientConfigurationBuilder builder = LettuceClientConfiguration
.builder()
.readFrom(ReadFrom.MASTER_PREFERRED)
.commandTimeout(Duration.of(5000, ChronoUnit.MILLIS))
.clientOptions(ClientOptions.builder()
.socketOptions(SocketOptions.builder()
.keepAlive(true)
.build())
.sslOptions(SslOptions.builder()
.keystore(keystore, "password".toCharArray())
.truststore(truststore, "password")
.build())
.build());
builder.useSsl().disablePeerVerification();

return new LettuceConnectionFactory(redisStandaloneConfiguration, builder.build());
}
и с некоторым кодом, например:

Код: Выделить всё

var connection = redisConnectionFactory.getConnection();

connection.set("test".getBytes(), "1".getBytes());
byte [] g = connection.get("test".getBytes());

connection.close();
Очевидная разница заключается в том, что в Lettuce мы можем отключить одноранговую проверку. Есть ли способ заставить это работать с Redisson?
К сожалению, нам приходится использовать Redisson из-за предлагаемой им службы исполнителя.

Подробнее здесь: https://stackoverflow.com/questions/779 ... ttuce-does
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»