我可以在我的docker专用registry中重复使用来自letsencrypt的HTTPS证书吗?

我有一个暴露在互联网上的HAProxy服务器。 我已经使用了诸如registry.mydomain.com之类的子域来创buildletsencrypt证书,从而启用encryption连接。

现在,我想使用HAProxy将stream量从该URL转发到其他计算机上的某个Docker群组。 在这个群体中,我正在运行一个Dockerregistry,这个registry又轮询着这样一个encryption证书。

我试图重复使用我从HAProxy得到的。 不幸的是,当stream量通过HAProxy进入Docker Registry容器时,我得到了这个错误信息:

来自守护程序的错误响应:获取https:// [swarm-ip]:5000 / v1 / users / :x509:无法validation[swarm-ip]的证书,因为它不包含任何IP SAN

作为一个试图做networking事务的程序员,我觉得在这里有一些缺失,但我无法弄清楚。

使用您的letsencrypt证书,CN(registry.mydomain.com)将与您尝试访问的url([swarm-ip])不匹配。

为您提供两种解决scheme,您可以创build自己的CA来生成自己的证书,并将其信任在您的haproxy上。

或者,你可以告诉haproxy不要validation证书:

server myserver [swarm-ip]:5000 ssl verify none 

有了这个,stream量仍然会在haproxy和后端之间encryption,但是不会检查证书是否有效。 这意味着你仍然可能易受MITM的伤害。

如果您决定告诉haproxy不要检查您的证书,您可以使用任何您想要的证书,甚至是自签名的证书。