Можно ли сгенерировать сертификат LetsEncrypt для частного поддомена, если домен является публичным?

У меня есть сервер, работающий на частном поддомене, server.internal.example.com

example.com является публичным, но internal.example.com не является.

Я использовал CertBot для создания сертификата для *.example.com, но если я пытаюсь расширить его, чтобы включить *.internal.example.com, DNS вызов не проходит, потому что LetsEncrypt не может достичь этого домена. Я пробовал запустить оба варианта:

sudo certbot certonly --manual --preferred-challenges=dns -d *.example.com -d *.internal.example.com
sudo certbot certonly --manual --preferred-challenges=dns -d *.example.com -d server.internal.example.com

но они оба требуют от меня изменения DNS-записи, которую LetsEncrypt не видит. Есть ли какой-нибудь способ обойти это?

1
задан 5 May 2021 в 18:42
2 ответа

Что мешает вам просто создать DNS-записи, необходимые letsencrypt, в вашем публичном DNS?

Если это нужно для того, чтобы сохранить в тайне схему вашей внутренней сети?
Тот факт, что сертификат TLS для определенного имени хоста существует и был создан, обычно все равно становится публичной информацией (см., например, функцию поиска на https://crt.sh/). Если вы не хотите этого: используйте внутренний CA для внутренних TLS-сертификатов (со всеми вытекающими отсюда последствиями) и таким образом избежите всей этой проблемы.

Поскольку существование сертификата более или менее подтверждает существование имени хоста, нет никаких причин не разрешать запись для ваших внутренних хостов в вашем публичном DNS (если только необходимые записи на время запроса/продления сертификата)...

Если только ваш публичный DNS не делегирует вашу внутреннюю зону DNS internal.example.com вашим внутренним IP-адресам, нет никаких технических причин, которые помешали бы вам просто создать

_acme-challenge.server.internal.example.com. IN TXT 667drNmQL3vX6bu8YZlgy0wKNBlCny8yrjF1lSaUndc 

запись (с правильными значениями) в вашей публичной зоне DNS.

3
ответ дан 7 May 2021 в 18:51

Нет, это невозможно обойти. Вы не можете получить сертификаты Let's Encrypt для доменов, которые Let's Encrypt не видит.

Рассмотрите возможность создания собственного ЦС для внутренних сертификатов. Это довольно просто для внутренней среды (посмотрите, например, easy-rsa).

1
ответ дан 7 May 2021 в 18:51

Теги

Похожие вопросы