Не удается обновить сертификат Let's Encrypt: диагностика ошибки 403

Сертификат Let's Encrypt истек, и его автоматическое обновление через клиент win-acme завершается неудачей. Процесс выпуска нового сертификата прерывается на этапе проверки домена (HTTP-01 challenge).

Симптомы и ошибка

Клиент win-acme создает файл проверки в директории /.well-known/acme-challenge/. Логи Apache фиксируют запрос к этому файлу, однако win-acme получает от серверов Let's Encrypt ошибку:

  • Код ошибки: 403 (Forbidden)
  • Тип ошибки: urn:ietf:params:acme:error:unauthorized
  • Сообщение: "Invalid response from [домен]: 403"

Интересно, что в логах Apache указан локальный адрес как источник запроса, а не внешний IP-адрес серверов Let's Encrypt.

Предпринятые действия

Для диагностики проблемы были выполнены следующие шаги:

  1. Переключение веб-сервера: Исходная конфигурация Apache была временно заменена на конфигурацию для Nginx. Результат остался прежним - ошибка 403.
  2. Настройка редиректа с HTTPS на HTTP: Чтобы избежать ошибки браузера NET::ERR_CERT_DATE_INVALID при ручном посещении сайта, были настроены правила перенаправления всех HTTPS-запросов на порт 80 (HTTP). Однако это не решило основную проблему с проверкой от Let's Encrypt.

Конфигурация веб-серверов (пример от DeepSeek)

Была применена следующая структура конфигурации:

Виртуальный хост на порту 80 (HTTP)

  • Корневая директория сайта: E:/1.
  • Явное разрешение доступа к директории /.well-known/acme-challenge/ для прохождения проверки.
  • Правило редиректа, преобразующее все HTTPS-запросы в HTTP.

Виртуальный хост на порту 443 (HTTPS)

  • Использование просроченного сертификата для возможности работы на порту.
  • Игнорирование различных проверок SSL для отладки.
  • Глобальное правило редиректа ВСЕХ запросов с HTTPS на HTTP-версию сайта.
  • Добавлен заголовок X-SSL-Redirect для отладки.

Ключевой вопрос

Почему серверы Let's Encrypt, запрашивая файл проверки по HTTP, получают в ответ код ошибки 403 (Доступ запрещен), несмотря на явно разрешенный доступ в конфигурации и наличие файла на диске?