Замучался я с эти LE.
Не работает от слова совсем.
Код |
---|
# INFO: Using main config file /home/bitrix/dehydrated/config
Processing all4rc.ru with alternative names: www.all4rc.ru test.all4rc.ru chat.all4rc.ru
+ Signing domains...
+ Generating private key...
+ Generating signing request...
+ Requesting authorization for all4rc.ru...
+ Requesting authorization for www.all4rc.ru...
+ Requesting authorization for test.all4rc.ru...
+ Requesting authorization for chat.all4rc.ru...
+ 4 pending challenge(s)
+ Deploying challenge tokens...
+ Responding to challenge for all4rc.ru authorization...
ERROR: Challenge is invalid! (returned: invalid) (result: {
"type": "http-01",
"status": "invalid",
"error": {
"type": "urn:acme:error:unauthorized",
"detail": "Invalid response from http://all4rc.ru/.well-known/acme-challenge/R06sVDklwBa9pSklYvqBDUqQwGOppOT4gii8fI69K8Q: \" \u003c!DOCTYPE html\u003e\n\u003chtml lang=\"ru\"\u003e\n \u003chead\u003e\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n \"",
"status": 403
},
"uri": "https://acme-staging.api.letsencrypt.org/acme/challenge/VlC3ZbYIWbvKsX8-95io5hg_M0LFyqqrImkFTDJDq7g/107356047",
"token": "R06sVDklwBa9pSklYvqBDUqQwGOppOT4gii8fI69K8Q",
"keyAuthorization": "R06sVDklwBa9pSklYvqBDUqQwGOppOT4gii8fI69K8Q.UzQ_W6VL8HIR9qXWUW-MJ9QXhZXY6nvXkJHS9smXGNo",
"validationRecord": [
{
"url": "https://all4rc.ru/.well-known/acme-challenge/R06sVDklwBa9pSklYvqBDUqQwGOppOT4gii8fI69K8Q",
"hostname": "all4rc.ru",
"port": "443",
"addressesResolved": [
"82.202.245.130"
],
"addressUsed": "82.202.245.130"
},
{
"url": "https://www.all4rc.ru/.well-known/acme-challenge/R06sVDklwBa9pSklYvqBDUqQwGOppOT4gii8fI69K8Q",
"hostname": "www.all4rc.ru",
"port": "443",
"addressesResolved": [
"82.202.245.130"
],
"addressUsed": "82.202.245.130"
},
{
"url": "http://all4rc.ru/.well-known/acme-challenge/R06sVDklwBa9pSklYvqBDUqQwGOppOT4gii8fI69K8Q",
"hostname": "all4rc.ru",
"port": "80",
"addressesResolved": [
"82.202.245.130"
],
"addressUsed": "82.202.245.130"
}
]
})
|
В папке /var/www/dehydrated - пусто. Права уже 777.
В логах тишина.
Ссылки естественно дают 404.
Location в nginx настроен.
Так на всех сайтах на виртуалке. Даже на тех, на которых месяц назад серты были получены.
location в nginx тоже не работает.
Положил в /var/www/.well-known/acme-challenge/test.php
- - [08/Mar/2018:12:22:20 +0300 - 0.221] 404 "GET /.well-known/acme-challenge/test.php HTTP/2.0" 26992 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36" "-"
Причем certbot - отлично отрабатывал..
В общем раскопал.
Может кому-то понадобится.
Проблема в конфиге nginx и переадресации на SSL. Она срабатывала ДО location и соответственно ничего не работало.
Было:
Код |
---|
# Redirect to ssl if need
if (-f /home/bitrix/ext_www/rcmart.ru/.htsecure) { rewrite ^(.*)$ https://$host$1 permanent; }
# Include parameters common to all websites
#include bx/conf/letsencrypt-challenge-tokens.conf;
include bx/conf/bitrix.conf;
include bx/conf/letsencrypt-challenge-tokens.conf;
|
Надо
Код |
---|
include bx/conf/letsencrypt-challenge-tokens.conf;
# Redirect to ssl if need
if (-f /home/bitrix/ext_www/rcmart.ru/.htsecure) { rewrite ^(.*)$ https://$host$1 permanent; }
# Include parameters common to all websites
#include bx/conf/letsencrypt-challenge-tokens.conf;
include bx/conf/bitrix.conf;
|
В общем сделал. По финалу:
1) При добавлении сайта конфиг nginx для сайта перетирается, include не работает, из-за этого выпустить сертификат нельзя.
Надо комментировать редирект, проходить challenge и раскомментировать. Переносить строчку бесполезно - ansible трет конфиг и кладет кривой.
2) Дополнительные домены выглядят забавно, с учетом того, что в конфиге nginx их нет, и, соответственно, nginx не отвечает по этим доменам.
3) При добавлении LE для сайта перевыпускаются ВСЕ сертификаты для ВСЕХ сайтов в конфигах. Сайты в конфигах не удаляются, если серт не выпущен из-за ошибки. Один раз ошиблись с доменами и не прошли challenge, например для default или опечатались в домене? Домены остались в списке и каждый раз dehydrated не может выпустить для них серт и отдает ошибку ansible. Соответственно ansible выдает ошибку создания сертифактов.
Хоть один домен не проходит challenge? Новое добавить нельзя.
Конфиги чистить тут /home/bitrix/dehydrated/domains
Почему-то dehydrated запускается сначала с domains.txt, а потом со всеми файлами в папке domains.