如何修复etcd群集“错误” tls:第一条记录看起来不像TLS握手””

时间:2019-01-12 12:25:43

标签: ssl kubernetes etcd

我创建了一个三节点的etcd集群,配置和启动已经可以了,但是当我检查/var/log/messages时,它显示了

  

etcd:拒绝来自“ 172.17.0.3:43192”的连接(错误“ tls:第一   记录看起来不像TLS握手”,ServerName“”)

我该如何解决?

我已经检查过etcd的运行状况:

member 48b0dff99d5c867e is healthy: got healthy result from https://172.17.0.9:2379
member 646dab89331aabab is healthy: got healthy result from https://172.17.0.8:2379
member b45603216bfac234 is healthy: got healthy result from https://172.17.0.10:2379

那显示确定,但是当我cat /var/log/messages时,它总是显示此错误:

  

1月12日20:08:57主etcd:拒绝来自的连接   “ 172.17.0.3:43160”(错误“ tls:第一个记录看起来不像TLS   握手”,服务器名称为“”)
  1月12日20:08:57主etcd:被拒绝   来自“ 172.17.0.3:43162”的连接(错误“ tls:记录过大   收到长度为21536“,ServerName为”“)

3 个答案:

答案 0 :(得分:0)

从我这方面来看,没有解决方案可以完全帮助您解决问题,但是我发现了一些链接可能会帮助您进行进一步的调查。仔细阅读它们,尝试解决方法,希望您能够解决问题。

  1. Github question #9917:检查ETCDCTL_API变量,尤其要确保--endpoints已配置为https。

  2. Runtime reconfiguration:尝试通过更新/删除/添加etcs成员来重新配置etcd。

  3. nginx ingresscheck your nginx ingress annotations(如果您使用的是nginx)

  4. google groups TLS handshake topic:选中此主题,尤其是与VAULT_ADDR变量有关的注释。我将从此处复制粘贴来自线程的最新评论:

  

了解了   权限问题。

     

您问:“请确认您是否看到服务器错误消息   在初始化保管箱之前”经过进一步检查,我确定   初始化Vault之前没有发生错误。

     

问题最终与VAULT_ADDR无关,我们使用了   值:“ http://127.0.0.1:8200

     

我已将设置操作编写为脚本,但似乎没有   一切都在适当的权限下运行。起初我是   使用“ sudo”命令运行脚本,导致   失败。我发现证书密钥的权限   受到限制,我的用户无法访问该文件。那里   可能还有其他权限问题。但是一旦我换了   用户启动并运行脚本,一切正常。

     

谢谢

答案 1 :(得分:0)

对我有帮助

listen       443 ssl http2;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;

在nginx配置中

答案 2 :(得分:0)

当从http切换为https进行对等通信时,我收到了有关etcd对等通信的消息。显然,etcd具有覆盖命令行选项的持久对等信息,因此尽管有命令行选项,它仍继续使用http进行对等通信。

最后,由于这是一个测试集群,因此我取消了/ var / lib / etcd的配置,并采用了新的cli配置