在RethinkDB集群连接TLS握手期间,OpenSSL错误336105606是什么意思

时间:2017-09-22 14:53:22

标签: ssl rethinkdb

我正在尝试通过TLS设置RethinkDB群集。我看到很多例子和博客,但没有描述生产环境。所有这些都使用自签名证书,并部署在本地主机或暴露于公共互联网的主机上。

但是我想使用在OpenStack上运行的专用网络。因此,所有主机(在OpenStack上称为实例)都具有私有IP。为了测试这个设置,我创建了2个实例(运行Ubuntu 16.04 LTS)并在它们上面安装了RethinkDB。

根据this RethinkDB页面,我必须为每台服务器提供密钥,签名证书和ca证书文件。每个证书都必须指定其CN(公用名),并且必须是主机名或主机IP。 IP是私有的,即(192.168.0。*)

为了做到这一点,我使用说明here创建了我自己的CA。为主机A创建了一个密钥文件,为主机B创建了一个密钥文件,并使用我自己创建的中间CA对其进行了签名。检查了所有证书,所有证书都回来了。由相同的CA正确签名。

所以现在我获得了主机A的私钥+公共证书,CN设置为主机A的IP,主机B也是如此。

我在两台服务器上安装了密钥,证书和中级CA证书,并在RethinkDB配置文件中指定了它们。我还将群集端口绑定到相应的IP。 rethinkdb用户可以访问所有密钥和证书文件。

主机A conf文件中的重要行

initial-password=MY_PASSWORD
bind-cluster=192.168.0.3
cluster-tls-key=/etc/ssl/private/rethinkdbA.key.pem
cluster-tls-cert=/etc/ssl/certs/rethinkdbA.cert.pem    
cluster-tls-ca=/etc/ssl/certs/rethink-ca.pem

主机B conf文件中的重要行

initial-password=auto
bind-cluster=192.168.0.4
cluster-tls-key=/etc/ssl/private/rethinkdbB.key.pem
cluster-tls-cert=/etc/ssl/certs/rethinkdbB.cert.pem    
cluster-tls-ca=/etc/ssl/certs/rethink-ca.pem
join=192.168.0.3:29015

然后我在主机A上启动RethinkDB。我检查了最后给我的日志文件

2017-09-22T15:29:35.854921950 0.265890s notice: Server ready, "hosta_jll" 7ae511e3-2295-4882-a23b-99de9751708e

然后我在主机B上启动RethinkDB。我检查其末尾读取的日志文件:

2017-09-22T13:12:39.647368542 0.135787s notice: Listening for intracluster connections on port 29015
2017-09-22T13:12:39.647465611 0.135884s info: Attempting connection to 1 peer...

主机A上的日志文件填满:

2017-09-22T13:12:40.647465611 46.922271s error: Cluster server connection TLS handshake failed: certificate verify failed (OpenSSL error 336105606)

所以我开始在这个OpenSSL错误336105606上寻找任何东西,但一无所获!正如我上面所说:我找不到任何示例/博客/操作方法/帮助页面,它向我展示了如何在生产环境中执行此操作。只有具有自签名证书的本地网络和开发环境。

当我从其运行的conf文件中删除cluster-tls- *行时,服务器形成一个集群。但是TLS没有运气。

所以我的问题是(是):错误代码是什么意思?我究竟做错了什么?甚至有必要在私有OpenStack网络中使用加密,虽然提到here这是一个好习惯吗?

过了几天......需要帮助!

非常感谢Marc

1 个答案:

答案 0 :(得分:0)

嗨马克我有同样的问题。请检查您的证书中的X509v3 Extended Key Usage: TLS Web Server Authentication 。 如果你这样的话:

X509v3 Extended Key Usage: 
                TLS Web Server Authentication, TLS Web Client Authentication
那个问题。 有效输出为:

openssl s_client -connect rethink-server1:31015 -key ./certs/r2-key.pem -cert ./certs/r2-cert.pem -CAfile ./certs/ca.pem -servername rethink-server2 | openssl x509 -text -noout

如何检查

oBinding.filter(oFilter, sap.ui.model.FilterType.Application);