redis - Stunnel 证书验证失败

标签 redis stunnel

我正在尝试在 Windows 中使用 REDIS 设置 stunnel。安装 stunnel 和 redis 后,我在服务器和客户端模式下进行了以下配置:

客户端机器配置:

[redis-stunnel]
client = yes
cert = stunnel.pem
accept = 127.0.0.1:6379
connect = 172.30.12.28:6390
verifyChain = yes
CAfile = stunnel.pem
checkHost = 172.30.12.28:6390
OCSPaia = yes 

服务器机器配置:

[redis-stunnel-server]
accept  = 6380
connect = 6379
cert = stunnel.pem

配置加载成功,但是当我尝试从客户端机器连接到端口号:6379 时,出现以下错误:

Service [redis-stunnel] connected remote server from 172.30.12.120:65484
2018.03.19 21:03:41 LOG4[229]: CERT: No matching host name found
2018.03.19 21:03:41 LOG4[229]: Rejected by CERT at depth=0: C=IN, ST=KARNATAKA, L=BANGALORE, O=AHC, OU=healthcare, CN=172.30.12.120
2018.03.19 21:03:41 LOG3[229]: SSL_connect: 14090086: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
2018.03.19 21:03:41 LOG5[229]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket

这里有什么问题吗?

最佳答案

您应该将 checkHost = 172.30.12.28:6390 替换为 checkIP = 172.30.12.28

checkHost 选项检查指定的 DNS 主机名或通配符是否与对等证书的 SAN 或 CN 字段中提供的任何匹配。

要检查 IP 地址,必须使用 checkIP 选项。

在内部,stunnel 使用 OpenSSLX509_check_hostX509_check_ip_asc 函数。这是他们的 description .

关于redis - Stunnel 证书验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49370538/

相关文章:

c++ - hiredis客户端,连接断开时redisAsyncFree报错

asp.net-mvc - .NET Core 带密码的分布式 Redis 缓存

ssl - Stunnel 是否支持非加密连接?

docker - 使用docker运行Redis master和哨兵的问题

Redis 连接关闭错误

node/redis : returning from inside callback? 中的 JavaScript 控制流

facebook - 重定向到 Facebook 应用 Canvas 中忽略的内部 URL

stunnel - 如何使用命令行重新加载 stunnel 配置?

networking - QuickFix/n 出现 Stunnel "Peer suddenly disconnected"错误