TLS连接redis返回握手失败
Opened this issue · 5 comments
使用这个库连接redis是必须要使用cert/key文件么
-
调用代码如下:
`acl::acl_cpp_init();
acl::log::stdout_open(true);acl::redis_client c("redis:6379");
c.set_password("");acl::polarssl_conf::set_libpath("/usr/loca/lib/libpolarssl.so");
auto conf = new acl::mbedtls_conf;
c.set_ssl_conf(conf);const char *key = "OBD:ALKDJFLAKDJADSK";
acl::redis conn;
conn.set_client(&c);auto ret = conn.set(key, "1", 10, SETFLAG_NX | SETFLAG_EX);`
-
调用返回错误如下:
polarssl_conf.cpp(208), polarssl_dll_load: /usr/local/lib/libpolarssl.so loaded! polarssl_io.cpp(447), handshake: ssl_handshake failed: -0x7200
是的,而且需要有ca证书,可以参考:#155 中讨论的。
是的,而且需要有ca证书,可以参考:#155 中讨论的。
再次请问,是否有提供单向认证功能,即客户端不携带证书。
我尝试使用单向认证(也就是上面的代码),也查看了相关的issue,没有找到类似的信息。但是从源码中samples的redis_ssl示例中,发现并没有对客户端认证文件的强校验,我推测应该是支持此种功能,或是我的理解有问题。谢谢
是的,而且需要有ca证书,可以参考:#155 中讨论的。
再次请问,是否有提供单向认证功能,即客户端不携带证书。 我尝试使用单向认证(也就是上面的代码),也查看了相关的issue,没有找到类似的信息。但是从源码中samples的redis_ssl示例中,发现并没有对客户端认证文件的强校验,我推测应该是支持此种功能,或是我的理解有问题。谢谢
这个双向验证似乎是redis-server要求的。
是的,而且需要有ca证书,可以参考:#155 中讨论的。
再次请问,是否有提供单向认证功能,即客户端不携带证书。 我尝试使用单向认证(也就是上面的代码),也查看了相关的issue,没有找到类似的信息。但是从源码中samples的redis_ssl示例中,发现并没有对客户端认证文件的强校验,我推测应该是支持此种功能,或是我的理解有问题。谢谢
这个双向验证似乎是redis-server要求的。
- redis-server我这边配置的是单向认证,同时我尝试以其他语言如GoLang进行单向认证连接测试,可以通过。
- 在使用acl::redis_client::set_ssl_conf()这个接口时,我使用的是polarssl,acl::polarssl_conf构造函数中第二个参数为不校验,理解为应该是客户端不校验服务端证书,但是从实际输出看,应该还是做的双向校验