TLS握手错误

时间:2015-12-15 14:55:14

标签: ssl docker handshake docker-registry

我已经设置了一个使用自签名证书的docker注册表,但是我收到了这个错误。这次握手错误是什么意思?每当我尝试将图像推送到我的注册表时,日志就会增加。 (这是我关于tls的注册表的日志)

$ docker logs 30273f6ed90f | grep tls
    2015/12/15 13:42:25 http: TLS handshake error from 10.0.0.xx:43393: EOF
    2015/12/15 13:42:30 http: TLS handshake error from 10.0.0.xx:43396: EOF
    2015/12/15 13:42:40 http: TLS handshake error from 10.0.0.xx:43401: EOF
    2015/12/15 13:44:34 http: TLS handshake error from 10.0.0.xx:43442: EOF
    2015/12/15 13:44:39 http: TLS handshake error from 10.0.0.xx:43443: EOF
    2015/12/15 13:44:49 http: TLS handshake error from 10.0.0.xx:43460: EOF
    2015/12/15 13:45:25 http: TLS handshake error from 10.0.0.xx:43479: tls: first record does not look like a TLS handshake
    2015/12/15 13:45:58 http: TLS handshake error from 10.0.0.xx:43488: EOF
    2015/12/15 13:46:03 http: TLS handshake error from 10.0.0.xx:43491: EOF
    2015/12/15 13:46:13 http: TLS handshake error from 10.0.0.xx:43496: EOF
    2015/12/15 13:49:08 http: TLS handshake error from 10.0.0.xx:43546: EOF
    2015/12/15 13:50:14 http: TLS handshake error from 10.0.0.xx:43600: EOF
    2015/12/15 13:50:19 http: TLS handshake error from 10.0.0.xx:43603: EOF
    2015/12/15 13:50:29 http: TLS handshake error from 10.0.0.xx:43608: EOF
    2015/12/15 13:57:03 http: TLS handshake error from 10.0.0.xx:43695: EOF
    2015/12/15 13:57:28 http: TLS handshake error from 10.0.0.xx:43781: EOF
    2015/12/15 13:59:35 http: TLS handshake error from 10.0.0.xx:43834: tls: first record does not look like a TLS handshake
    2015/12/15 14:00:41 http: TLS handshake error from 10.0.0.xx:43860: EOF
    2015/12/15 14:00:46 http: TLS handshake error from 10.0.0.xx:43863: EOF
    2015/12/15 14:00:56 http: TLS handshake error from 10.0.0.xx:43868: EOF
    2015/12/15 14:18:40 http: TLS handshake error from 10.0.0.xx:44300: EOF
    2015/12/15 14:18:45 http: TLS handshake error from 10.0.0.xx:44303: EOF
    2015/12/15 14:18:55 http: TLS handshake error from 10.0.0.xx:44308: EOF
    2015/12/15 14:27:54 http: TLS handshake error from 10.0.0.xx:44531: EOF
    2015/12/15 14:27:59 http: TLS handshake error from 10.0.0.xx:44534: EOF
    2015/12/15 14:28:09 http: TLS handshake error from 10.0.0.xx:44539: EOF
    2015/12/15 14:31:55 http: TLS handshake error from 10.0.0.xx:44637: EOF
    2015/12/15 14:32:10 http: TLS handshake error from 10.0.0.xx:44644: EOF
    2015/12/15 14:32:33 http: TLS handshake error from 10.0.0.xx:44656: EOF
    2015/12/15 14:40:20 http: TLS handshake error from 10.0.0.xx:44855: EOF
    time="2015-12-15T13:41:22Z" level=info msg="listening on [::]:5000, tls" go.version=go1.5.2 instance.id=1e35bbf3-4337-4df5-8a57-bdeccaac5203 version=v2.2.1 
    time="2015-12-15T13:44:05Z" level=info msg="listening on [::]:5000, tls" go.version=go1.5.2 instance.id=a785b46c-6eac-4fff-9d78-0774abd46a8c version=v2.2.1 
    time="2015-12-15T14:37:40Z" level=info msg="listening on [::]:5000, tls" go.version=go1.5.2 instance.id=9d0c50e7-bfd8-4ec1-8531-6b3e0a23af6b version=v2.2.1 

2 个答案:

答案 0 :(得分:0)

很难理解您如何使用问题中提供的有限上下文访问Docker注册表,但查看Go代码(因为Docker是用Go编写的):https://golang.org/src/crypto/tls/conn.go,您用来连接的客户端到Docker注册表没有使用HTTPS访问注册表。

根据错误,您需要使用启用了TLS的客户端访问docker注册表,该客户端使用由相同的自签名CA信任的证书,该证书用于为Docker注册表创建证书。

参考文献:http://tech.paulcz.net/2016/01/deploying-a-secure-docker-registry/

答案 1 :(得分:0)

尝试使用443端口:

svr := &http.Server{
    Addr: ":443",
    Handler: smux,
}

svr.ListenAndServeTLS("cert.pem", "key.pem")