Мой клиент имеет домен и направил запись A своего домена на мою машину, чтобы я мог разработать сайт. Обычно, когда у меня есть контроль над DNS, довольно легко получить сертификат LetsEncrypt и работающий https. Однако я не могу сделать это сейчас, когда у него есть DNS, и он указывает только запись A на мой IP, и я не уверен, почему. Любая подсказка?
2 ответа
Let's Encrypt поддерживает несколько типов вызовов ACME. Если вы не можете использовать проверку домена на основе DNS, альтернативой является использование HTTP- запроса , то есть параметра --webroot
в certbot.
В этом режиме CertBot просто нужно поместить определенный файл в ваш веб-каталог, чтобы сервер Let's Encrypt мог успешно загрузить его, для чего достаточно существующей записи A. Однако вам нужно, чтобы веб-сервер уже работал на порту 80.
- Сконфигурируйте веб-сервер для обслуживания, например,
/var/www
в этом домене по обычному HTTP. certbot certonly --webroot -w /var/www -d example.com
- Certbot помещает файл в /var/www/.well-known/acme-challenge/, Let's Encrypt загружает его
- Теперь завершите настройку веб-сервера, чтобы он также обслуживал домен через HTTPS.
(Обратите внимание, что вам необходимо поддерживать доступ к обычному HTTP-порту 80 при каждом обновлении. Можно перенаправить его на HTTPS, но файл запроса все еще должен быть доступен.)
Обычно, когда у меня есть контроль над DNS, довольно легко получить сертификат LetsEncrypt и работающий https.
Если вы используете DNS-01 для проверки сайта, то записи TXT временно добавляются в зону DNS во время этого процесса. Предполагая, что используется DNS-01, кажется, что Certbot не может добавить необходимые записи TXT для проверки.
Самая простая альтернатива - использовать проверку HTTP-01 вместо параметров --webroot
(как указано в ответе @grawity). С помощью этого метода вы не можете получить сертификат домена подстановочного знака (например, * .example.com), но вы должны иметь возможность использовать альтернативные имена субъекта (SAN) с ним (при условии, что вам нужен сертификат, который также охватывает субдомены и т.д.).