Как исправить ошибку «Невозможно подключиться» в Java-соединении с ssl к «базам данных для redis» облака IBM - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь подключиться к базам данных ibmcloud, используя lettuce-4.5.0. Я настроил самозаверяющий сертификат SSL по ссылке, но в соединении возникает ошибка.

Цепочки сертификатов / Корневой сертификат / Самоподписанные сертификаты
https://lettuce.io/core/release/reference/#ssl.certificate-chainsroot-certificateself-signed-certificates

А также проверяю следующую ссылку.
Поддержка TLS драйвера и самозаверяющего сертификата
https://cloud.ibm.com/docs/services/databases-for-redis?topic=databases-for-redis-external-app&locale=ja#driver-tls-and-self-signed-certificate-support

import com.lambdaworks.redis.ClientOptions;
import com.lambdaworks.redis.RedisClient;
import com.lambdaworks.redis.RedisURI;
import com.lambdaworks.redis.SslOptions;

//Create RedisClient
RedisURI redisuri = RedisURI.create("rediss://user:password@host:port/database");
RedisClient redisClient = RedisClient.create(redisuri);

//Create Certificate File
File file = new File("path to file");
FileWriter filewriter = new FileWriter(file);
filewriter.write("Base64 decode of certificate_base64 of VCAP_SEVICES( or service credential)");
filewriter.close();

//set truststore
SslOptions sslOptions = SslOptions.builder()
        .jdkSslProvider()
        .truststore(file)
        .build();

redisClient.setOptions(ClientOptions.builder()
        .sslOptions(sslOptions)
        .build());

//connect
redisClient.connect();

Однако следующая ошибка возникает при redisClient.connect();.

причина: ClosedChannelException
detailMessage: Невозможно подключиться к хосту / IP: порт

Я ожидаю, что подключиться к Redis с SSL. Не могли бы вы дать мне совет, если что-то пропало?

...