我正在尝试使用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。你能给我一些缺少的建议吗?