Ошибка под ключ linux confconsole обезвожена .well-known / acme-challenge 404 НЕ НАЙДЕН - PullRequest
0 голосов
/ 31 марта 2019

Используя готовый дистрибутив Linux от RamNode, я заметил, что у моих сайтов истекли сертификаты, а ссылки https помечены диалогом «Продолжить».Заглядывая дальше в проблему, Linux под ключ использует confconsole с Let's Encrypt для запроса новых сертификатов.Несколько [виртуальных] доменов требуют, чтобы пользователь вручную использовал оболочку dehydrated, которую cronjob вызывает ежедневно в /etc/cron.daily/confconsole-dehydrated, но приводит к ошибке:

/ var / log / confconsole /letsencrypt.log

[2019-03-09 05:35:04] dehydrated-wrapper: FATAL: An unexpected service is listening on port 80: nginx:
[2019-03-09 05:35:04] dehydrated-wrapper: WARNING: Something went wrong, restoring original cert & key.
Restarting SSL tunnels: [stopped: /etc/stunnel/stunnel.conf] [Started: /etc/stunnel/stunnel.conf] stunnel.
[2019-03-09 05:35:09] dehydrated-wrapper: WARNING: Check today's previous log entries for details of error.
[2019-03-09 05:35:09] cron: ERROR: dehydrated-wrapper exited with a non-zero exit code.
[2019-03-10 05:35:04] cron: /etc/ssl/private/cert.pem has expired or will do so within 30 days. Attempting renewal.

Решение: Обновите /usr/lib/confconsole/plugins.d/Lets_Encrypt/dehydrated-wrapper с

ЗАМЕНА:

netstat -ltpn | grep ":80 " | head -1 | cut -d/ -f2 | sed -e 's [[:space:]].*$||'

С:

netstat -ltpn | grep ":80 " | head -1 | cut -d/ -f2 \
   | sed -e 's|[[:space:]].*$||; s|[^a-zA-Z0-9]||'

как в этом коммите https://github.com/turnkeylinux/confconsole/commit/d1e61c4767c2148663429d63bc3a42925af8cbcd

Затем вручную запустите cronjob или дождитесь завтрашнего дня: /etc/cron.daily/confconsole-dehydrated

[2019-03-31 19:26:45] confconsole.hook.sh: SUCCESS: Cert request successful. Writing cert.pem & cert.key for DOMAIN1 to /etc/ssl/private
[2019-03-31 19:26:52] confconsole.hook.sh: SUCCESS: Cert request successful. Writing cert.pem & cert.key for DOMAIN2 to /etc/ssl/private
[2019-03-31 19:26:59] confconsole.hook.sh: SUCCESS: Cert request successful. Writing cert.pem & cert.key for DOMAIN3 to /etc/ssl/private

Спасибо, и я надеюсь, что это сэкономит вам время

Ссылка по теме: https://github.com/turnkeylinux/tracker/issues/976

1 Ответ

0 голосов
/ 31 марта 2019

Я ответил на этот вопрос в самом посте с вопросом, однако вот еще раз ответ для роботов.

Решение: Обновите /usr/lib/confconsole/plugins.d/Lets_Encrypt/dehydrated-wrapperс

ЗАМЕНА:

netstat -ltpn | grep ":80 " | head -1 | cut -d/ -f2 | sed -e 's [[:space:]].*$||'

С:

netstat -ltpn | grep ":80 " | head -1 | cut -d/ -f2 \
   | sed -e 's|[[:space:]].*$||; s|[^a-zA-Z0-9]||'

Я мог бы дополнительно расширить решение, обсудив корневую проблему.

Посколькустрока в dehydrated-wrapper назначала переменную WEBSERVER для nginx:, dehydrated не удалось остановить nginx перед запросом и обновлением сертификатов.Добавление nginx: в оператор case позволит вам остановить nginx, но не сможет запустить процесс nginx:, поскольку он не существует, для размещения местоположения .well-known/acme-challenges, что приведет к 404, когда дегидратированный пытаетсяубедитесь, что SSL-сертификаты HTTPS правильно настроены.

...