首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stunnel证书验证失败

Stunnel证书验证失败
EN

Stack Overflow用户
提问于 2018-03-20 03:02:36
回答 2查看 4.5K关注 0票数 1

我正在尝试用windows.After中的REDIS来安装stunnel和redis,我有以下的服务器和客户端模式的配置:

客户端计算机配置:

代码语言:javascript
复制
[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 

服务器机器配置:

代码语言:javascript
复制
[redis-stunnel-server]
accept  = 6380
connect = 6379
cert = stunnel.pem

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

代码语言:javascript
复制
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

这里出了什么问题?

EN

回答 2

Stack Overflow用户

发布于 2020-02-14 18:08:29

您应该用checkIP = 172.30.12.28替换checkHost = 172.30.12.28:6390

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

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

的内部,使用了OpenSSLX509_check_hostX509_check_ip_asc函数。下面是它们的description

票数 1
EN

Stack Overflow用户

发布于 2018-06-13 20:30:33

checkHost = <value>检查对等证书的主题中的CN是否对应于<value>。根据日志,证书中的CN为172.30.12.120。因此,您应该将客户端配置更改为checkHost = 172.30.12.120

这可能会让它工作,尽管我不确定您的TLS配置是否经过深思熟虑。

看起来您没有进行客户端身份验证,因此可以从客户端配置中删除cert。此外,如果客户端计算机上有服务器证书,则可以使用“证书固定技术”:删除checkHost选项,并用verifyPeer = yes替换verifyChain。并且客户端计算机上的stunnel.pem必须与服务器上的stunnel.pem相同。

Stunnel documentation contains some simple examples for this.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49370538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档