Я пытаюсь установить 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, вам также следует проверить
что вы обслуживаете файлы по указанному вами корневому пути.
Я следовал руководству по базовой настройке, описанному здесь , и пробовал всевозможные варианты конфигурации, такие как предложенные здесь . Однако я не могу обойти указанную выше ошибку - и не вижу ничего в файле журнала, чтобы указать причину.
Есть предложения?
Конфигурация nginx выглядит правильно.
Подозрительно я запустил nmap
для вашего домена (поскольку вы включили его в свой вопрос); Похоже, что вы в настоящее время фильтруете порт 80, поэтому LetsEncrypt не может подключиться извне и проверить.
Вам необходимо убедиться, что порт 80 открыт для внешнего доступа на локальном брандмауэре рассматриваемого сервера (а также для любых списков контроля доступа, которые могут быть на месте у провайдера виртуального хоста или аналогичного).
Эта ошибка также может возникнуть, если вы перенаправляете запрос http-01 с http на https. Каталог .well-known / acme-challenge должен быть доступен через http на порт 80.
Они намеренно запутывают. У меня была та же ошибка 400, и я снова начал копаться в кроличьей норе с обновлением. Раньше были разные ошибки. Решение: удалите предыдущие сертификаты из SSL бесплатно и удалите просроченный сертификат с сервера. (Хотя сертификат с истекшим сроком действия все еще настроен и активен, вы никогда не получите новый) jar2