Я знаю, что этот вопрос задавался несколько раз, но мне нужна конкретная помощь, так как я прислушивался к советам из нескольких других тем, и до сих пор ничего не сработало.
Я пытаюсь обновить свой SSL-сертификат в Ubuntu 14.04, используя certbot-auto renew
, и я использую сервер Apache2 и nginx. Я получаю следующий вывод для certbot-auto renew
:
root@PostgreSQLServer:/# sudo certbot-auto renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/my-domain.com.conf
-------------------------------------------------------------------------------
Cert is due for renewal, auto-renewing...
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for my-domain.com
Waiting for verification...
Cleaning up challenges
Attempting to renew cert from /etc/letsencrypt/renewal/my-domain.com.conf produced an unexpected error: Failed authorization procedure. my-domain.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://my-domain.com/.well-known/acme-challenge/ailNmgZADpb4QBipKM57sOi9w3PwNkwBwVFiRYs7i40: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p". Skipping.
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/my-domain.com/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: my-domain.com
Type: unauthorized
Detail: Invalid response from
http://my-domain.com/.well-known/acme-challenge/ailNmgZADpb4QBipKM57sOi9w3PwNkwBwVFiRYs7i40:
"<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p"
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A record(s) for that domain
contain(s) the right IP address.
Я убедился, что папка .well-known
существует в /var/www/my-domain.com/public_html
, и когда я перехожу к http://my-domain.com/.well-known/
в своем браузере, я могу видеть содержимое этого каталога. Я также добавил папку acme-challenge
в .well-known
и включил файл test.txt
для тестирования; Я смог получить доступ к каталогу и текстовому файлу в своем браузере.
Я обнаружил, что папка acme-challenge
не была создана, когда я запускал команду certbot-auto
, поэтому, похоже, это проблема с правами доступа. Я запускаю certbot-auto
как root, но также дал права на запись пользователю www-data
в папках .well-known
и acme-challenge
(пользователи root и www-data запускают процессы apache2 и nginx).
Даже после предоставления этого разрешения на запись я все равно получаю ошибку 404, описанную выше.
У меня также есть автоматизированный процесс обновления сертификата, работающий через crontab
, и выходные данные записываются в локальный файл. В этом файле журнала я вижу, что запрос на обновление работал правильно, пока certbot-auto
не был обновлен с 0.9.3 до 0.10.1. Вот пример из файла журнала, когда произошло обновление:
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/offensively-bad.com.conf
-------------------------------------------------------------------------------
The following certs are not due for renewal yet:
/etc/letsencrypt/live/offensively-bad.com/fullchain.pem (skipped)
No renewals were attempted.
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/offensively-bad.com.conf
-------------------------------------------------------------------------------
The following certs are not due for renewal yet:
/etc/letsencrypt/live/offensively-bad.com/fullchain.pem (skipped)
No renewals were attempted.
Upgrading certbot-auto 0.9.3 to 0.10.1...
Replacing certbot-auto...
Creating virtual environment...
Installing Python packages...
Installation succeeded.
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/offensively-bad.com.conf
-------------------------------------------------------------------------------
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/offensively-bad.com/fullchain.pem (failure)
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: offensively-bad.com
Type: unauthorized
Detail: Invalid response from
http://offensively-bad.com/.well-known/acme-challenge/tkSc8l-r1XVPIF5TosTbEXiYMa8sQnoXEjAEgAwRoqI:
"<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p"
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A record(s) for that domain
contain(s) the right IP address.
Вы можете видеть, что после обновления процесс начал давать сбой с сообщением 404.
Я испробовал все советы, которые мог найти в Интернете, и совершенно запутался, поэтому любая помощь будет очень признательна. Заранее спасибо!