Для начала краткая справка о том, что такое 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
З.Ы. Такое иногда бывает, когда переезжаешь с одного хостинга на другой, а про эту «штуку» забыл.
