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