Для начала краткая справка о том, что такое ACME-протокол и папка acme-challenge.
ACME-challenge и ACME-протокол относятся к получению и автоматическому проделнию SSL/TLS-сертификатов (HTTPS).
Что такое ACME-протокол?
ACME (Automatic Certificate Management Environment) - это протокол, который позволяет автоматически:
- получать SSL-сертификаты;
- подтверждать владение доменом;
- продлевать сертификаты без участия человека.
Самый известный сервис, использующий АСМЕ, - Let's Enctypt.
Проще говоря: АСМЕ - это "язык общения" между вашим сервером и центром сертификации.
Что такое АСМЕ-challenge?
ACME-challenge - это проверка, с помощью которой центр сертификации убеждается, что вы действительно владеете доменом.
Самый распространенный тип ACME-challenge - HTTP-01. (тот самый .well-known/acme-challenge)
Другие типы ACME-challenge - DNS-01, TLS-ALPN-01.
Как это происходит:
1. Вы запрашиваете сертификат для domain-name.com
2. Центр сертификации говорит: "докажи, что домен твой"
3. Ваш сервак размещает файл https://gomain-name.com/.well-known/acme-challenge/XXXXXX
4. Let's Encrypt заходит по этому URL
5. Если содержимое совпадает - домен подтвержден
Теперь собственно к проблеме.

В логах сервера nginx, обнаружил ошибку получения SSL:
user@pc:/home/.../logs/nginx# cat arror.log-2025-12-16
2025/12/16 06:49:08 [error] 2341901#2341901: *46498561 open()
"/home/.../htdocs/domain-name.com/.well-known/acme-challenge/index.php" failed (2: No such file or directory),
client: ip-клиента,
server: domain-name.com,
request: "GET /.well-known/acme-challenge/index.php HTTP/1.1",
host: "domain-name.com"
2025/12/16 06:49:21 [error] 2341901#2341901: *46498561 open()
"/home/.../htdocs/domain-name.com/.well-known/acme-challenge/admin.php" failed (2: No such file or directory),
client: ip-клиента,
server: domain-name.com,
request: "GET /.well-known/acme-challenge/admin.php HTTP/1.1",
host: "domain-name.com"
Расшифровка:
- client: ip-клиента — внешний IP
- request: GET /.well-known/acme-challenge/index.php
- nginx пытается открыть файл
- файла не существует
- nginx пишет ошибку в error.log
Почему именно .well-known/acme-challenge?
- сканер / бот, перебор сайтов, ищет уязвимости (index.php, admin.php), просто «стучится» в стандартные пути
- остатки или попытка ACME (Let's Encrypt), был certbot, был HTTPS, было автопродление,
- .well-known/acme-challenge/ не настроен, или каталог удалён, nginx логирует ошибку
Как уменьшить шум в логах?
Вариант 1 — создать каталог (если используешь HTTPS):
mkdir -p /home/.../htdocs/domain-name.com/.well-known/acme-challenge
Вариант 2 — запретить доступ к ACME (если HTTPS не нужен):
В конфиге nginx:
location ^~ /.well-known/acme-challenge/ {
return 404;
}
или даже:
location ^~ /.well-known/ {
deny all;
}
Если хочешь проверить масштаб:
grep acme-challenge error.log | wc -l
IP-адрес:
grep ip-клиента error.log
З.Ы. Такое иногда бывает, когда переезжаешь с одного хостинга на другой, а про эту "штуку" забыл.
