Не удается обновить сертификат 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 (Доступ запрещен), несмотря на явно разрешенный доступ в конфигурации и наличие файла на диске?