如何修复与ssl连接到IBM Cloud的“ Redis数据库”的Java中的“无法连接”错误

时间:2019-06-25 09:06:22

标签: java ssl redis ibm-cloud lettuce

我正在尝试使用lettuce-4.5.0连接到ibmcloud的数据库以进行重做。 我从链接中设置了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:端口

我希望使用ssl连接到Redis。你能给我一些缺少的建议吗?

0 个答案:

没有答案