![Ошибка установки LetsEncrypt SSL: (http-01): urn:acme:error:connection :: Серверу не удалось подключиться к клиенту для проверки домена](https://rvso.com/image/696997/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8%20LetsEncrypt%20SSL%3A%20(http-01)%3A%20urn%3Aacme%3Aerror%3Aconnection%20%3A%3A%20%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D1%83%20%D0%BD%D0%B5%20%D1%83%D0%B4%D0%B0%D0%BB%D0%BE%D1%81%D1%8C%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F%20%D0%BA%20%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D1%83%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B8%20%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%B0.png)
Я пытаюсь установитьLetsEncrypt
на моем сервере (к которому у меня есть root-доступ по SSH), для staging.dnslaude.com
- который является общедоступным доменом, указывающим на 213.212.81.89
.
Сервер запущен ubuntu 16.04
, и nginx
веб-сервер. Ниже приведен nginx
конфиг:
server {
listen 80;
server_name staging.dnslaude.com;
root /path/to/webroot;
location ^~ /.well-known/acme-challenge/ {
try_files $uri $uri/ =404;
}
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 443;
ssl on;
ssl_certificate /path/to/self/signed/certificate.crt;
ssl_certificate_key /path/to/key.key;
server_name staging.dnslaude.com;
root /path/to/webroot;
# ....
location ^~ /.well-known/acme-challenge/ {
try_files $uri $uri/ =404;
}
}
Вы можете видеть, что nginx
конфигурацияпоявляетсяработать, так как я вручную поместил файл в acme-challenge
папкуздесь.
Однако, когда я запускаю команду:
letsencrypt certonly --webroot -w /path/to/webroot -d staging.dnslaude.com
Возвращает следующую ошибку:
Не удалось пройти процедуру авторизации. staging.dnslaude.com (http-01): urn:acme:error:connection :: Серверу не удалось подключиться к клиенту для проверки домена :: Не удалось подключиться к staging.dnslaude.com
ВАЖНЫЕ ПРИМЕЧАНИЯ: - Сервер сообщил о следующих ошибках:
Домен: staging.dnslaude.com Тип: подключение Подробности: Не удалось подключиться к staging.dnslaude.com
Чтобы исправить эти ошибки, убедитесь, что имя вашего домена
введено правильно, а запись(и) DNS A для этого домена
содержат(ют) правильный IP-адрес. Кроме того, проверьте, что
ваш компьютер имеет публично маршрутизируемый IP-адрес и что никакие
брандмауэры не мешают серверу взаимодействовать с
клиентом. Если вы используете плагин webroot, вам также следует проверить
, что вы обслуживаете файлы из указанного вами пути webroot.
Я следовал базовому руководству по настройке, изложенномуздесь, и перепробовали всевозможные варианты конфигурации, такие как предложенныездесь. Однако я не могу обойти указанную выше ошибку и не вижу в файле журнала ничего, что могло бы указать на причину.
Какие-либо предложения?
решение1
Ваша конфигурация nginx выглядит правильно.
По наитию я наткнулся nmap
на ваш домен (так как вы включили его в свой вопрос); похоже, что в настоящее время вы фильтруете порт 80, поэтому у LetsEncrypt нет возможности подключиться извне и выполнить проверку.
Вам необходимо убедиться, что порт 80 открыт для внешнего доступа на локальном брандмауэре соответствующего сервера (а также в любых списках контроля доступа, которые могут быть установлены у провайдера vhost или аналогичного).
решение2
Эта ошибка может также возникнуть, если вы перенаправляете вызов http-01 с http на https. Каталог .well-known/acme-challenge должен быть доступен через http на порту 80.
решение3
Они намеренно запутывают. У меня была та же ошибка 400, и я снова начал спускаться в кроличью нору с обновлением. В прошлые разы были другие ошибки. Решение: удалите предыдущие сертификаты из SSL for Free и удалите просроченный сертификат с сервера. (Пока просроченный сертификат все еще настроен и активен, вы никогда не получите новый) jar2