У меня есть сервер HAProxy, доступный в Интернете. Я использовал поддомен, например registry.mydomain.com, для создания сертификатов letsencrypt, обеспечивающих шифрованные соединения.
Теперь я хочу использовать HAProxy для перенаправления трафика с этого URL-адреса на некоторый рой докеров на других компьютерах. В этом рое я использую реестр Docker, который, в свою очередь, запрашивает такой сертификат шифрования.
Я попытался повторно использовать то же, что получил от HAProxy. К сожалению, когда трафик проходит через HAProxy в контейнер Docker Registry, я получаю это сообщение об ошибке:
Ответ об ошибке от демона: Get https: // [swarm-ip]: 5000 / v1 / users /: x509: невозможно проверить сертификат для [swarm-ip], потому что он не содержит IP-сетей SAN
Как программист, пытающийся разобраться в сетевых вещах, я чувствую, что здесь чего-то не хватает, но я просто не могу этого понять.
С вашим сертификатом letsencrypt CN (registry.mydomain.com) не будет соответствовать URL-адресу, который вы пытаетесь достичь ([swarm-ip]).
Два решения для вас, вы можете создать свой собственный CA чтобы сгенерировать свои собственные сертификаты и доверить ему свой haproxy.
Или вы можете просто указать haproxy не проверять сертификат:
server myserver [swarm-ip]:5000 ssl verify none
При этом трафик между вашим хапрокси и сервером по-прежнему будет зашифрован, но он не будет проверять действительность сертификата. Это означает, что вы все еще можете быть уязвимы для MITM.
Если вы решите указать своему haproxy не проверять ваш сертификат, вы можете использовать любой сертификат, который хотите, даже самоподписанный.