поменял версию PHP на 8.4 выдает ошибку AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name

Главные вкладки

Комментарии

Аватар пользователя riaron986 riaron986 24 июля в 21:20

сделал все по вашей инструкции даже переустановил xampp не поомогло
вот ошибка
[Thu Jul 24 21:06:05.796106 2025] [ssl:warn] [pid 7308:tid 376] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Thu Jul 24 21:06:05.864744 2025] [ssl:warn] [pid 7308:tid 376] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Thu Jul 24 21:06:05.927328 2025] [mpm_winnt:notice] [pid 7308:tid 376] AH00455: Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12 configured -- resuming normal operations
[Thu Jul 24 21:06:05.927328 2025] [mpm_winnt:notice] [pid 7308:tid 376] AH00456: Apache Lounge VS17 Server built: Oct 18 2023 13:03:18
[Thu Jul 24 21:06:05.927328 2025] [core:notice] [pid 7308:tid 376] AH00094: Command line: 'C:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache'
[Thu Jul 24 21:06:05.937326 2025] [mpm_winnt:notice] [pid 7308:tid 376] AH00418: Parent: Created child process 13088
[Thu Jul 24 21:06:06.644310 2025] [ssl:warn] [pid 13088:tid 368] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Thu Jul 24 21:06:06.711738 2025] [ssl:warn] [pid 13088:tid 368] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Thu Jul 24 21:06:06.770408 2025] [mpm_winnt:notice] [pid 13088:tid 368] AH00354: Child: Starting 150 worker threads.

Аватар пользователя levmyshkin levmyshkin 28 июля в 22:34

Предупреждение AH01909 в XAMPP: как убрать

Суть проблемы

Apache сообщает: server certificate does NOT include an ID which matches the server name.
Это означает, что имя хоста в конфигурации виртуального хоста (ServerName) не совпадает с именами,
на которые выписан сертификат (CN/SAN). Сервер продолжает работать, но выдаёт предупреждение и браузеры могут ругаться.


Быстрое решение №1 — работать через https://localhost

  1. Остановите Apache в XAMPP Control Panel.
  2. Откройте файл C:\xampp\apache\conf\extra\httpd-ssl.conf и убедитесь, что там:
    # Для примера в XAMPP часто прописан www.example.com — замените на localhost
    ServerName localhost:443

    При желании удалите/закомментируйте примерный <VirtualHost> для www.example.com и оставьте только ваш.

  3. Создайте валидный сертификат для localhost c SAN (subjectAltName):

    Вариант A. mkcert (самый простой, с установкой локального доверенного CA)

    mkcert -install
    mkcert localhost 127.0.0.1 ::1

    Получите два файла, например: localhost+2.pem (сертификат) и localhost+2-key.pem (ключ).

    Вариант B. OpenSSL (самоподписанный сертификат)

    openssl req -x509 -newkey rsa:2048 -sha256 -days 825 -nodes ^
      -keyout C:\xampp\apache\conf\ssl.key\localhost.key ^
      -out    C:\xampp\apache\conf\ssl.crt\localhost.crt ^
      -subj "/C=RS/ST=NA/L=Belgrade/O=Dev/OU=Local/CN=localhost" ^
      -addext "subjectAltName=DNS:localhost,IP:127.0.0.1,IP:::1"

    Ключ -addext доступен в OpenSSL 1.1.1+. SAN обязателен, иначе предупреждение не исчезнет.

  4. Пропишите пути к сертификату в конфиге (в том же httpd-ssl.conf или в вашем отдельном vhost-файле):
    <VirtualHost *:443>
        ServerName localhost
        DocumentRoot "C:/xampp/htdocs"

        SSLEngine on
        SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/localhost.crt"     # или .pem из mkcert
        SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/localhost.key"  # или ключ из mkcert
    </VirtualHost>
  5. Запустите Apache и проверьте лог. Запись AH01909 должна исчезнуть.

Решение №2 — свой домен, например myproject.local

  1. Пропишите домен в C:\Windows\System32\drivers\etc\hosts:
    127.0.0.1   myproject.local
  2. Выпустите сертификат с SAN, включающим этот хост:

    mkcert

    mkcert myproject.local 127.0.0.1 ::1

    OpenSSL

    openssl req -x509 -newkey rsa:2048 -sha256 -days 825 -nodes ^
      -keyout C:\xampp\apache\conf\ssl.key\myproject.local.key ^
      -out    C:\xampp\apache\conf\ssl.crt\myproject.local.crt ^
      -subj "/C=RS/ST=NA/L=Belgrade/O=Dev/OU=Local/CN=myproject.local" ^
      -addext "subjectAltName=DNS:myproject.local,IP:127.0.0.1,IP:::1"
  3. Настройте виртуальный хост:
    <VirtualHost *:443>
        ServerName myproject.local
        DocumentRoot "C:/xampp/htdocs/myproject"

        SSLEngine on
        SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/myproject.local.crt"
        SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/myproject.local.key"
    </VirtualHost>
  4. Перезапустите Apache и убедитесь, что в логе нет AH01909.

Полезные проверки

  • Соответствие имён: имя в ServerName должно присутствовать в SAN сертификата.
    Проверить можно так:
    openssl x509 -in C:\xampp\apache\conf\ssl.crt\localhost.crt -noout -text | findstr /I "Subject: DNS:"
  • Это предупреждение, не фатальная ошибка: в вашем логе есть
    Apache ... configured -- resuming normal operations, значит сервер запускается.
    Чтобы убрать предупреждение, нужен корректный CN/SAN.
  • Версия PHP: в логе указано PHP/8.2.12. Если вы ожидаете 8.4, проверьте:
    • Строку загрузки модуля PHP в C:\xampp\apache\conf\httpd.conf:
      LoadModule php_module "C:/xampp/php/php8apache2_4.dll"
    • Что установлен XAMPP с нужной версией PHP.
    • phpinfo() в браузере — какая версия реально активна.

    (Это отдельно от SSL и на предупреждение AH01909 не влияет.)


Если не получится

Пришлите содержимое ваших блоков <VirtualHost *:443>...</VirtualHost> и точные пути к сертификату/ключу — проверю конфигурацию построчно.

Аватар пользователя riaron986 riaron986 2 августа в 17:31

и сертификаты сгенерировал и вставил localhost.crt localhost.key
очистил содержимое файла иhttpd-ssl.conf м вставил

<VirtualHost>
    ServerName localhost:443
    DocumentRoot "C:/xampp/htdocs"

    SSLEngine on
    SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/localhost.crt"     # или .pem из mkcert
    SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/localhost.key"  # или ключ из mkcert
</VirtualHost>  

а пути к сертификатам
C:/xampp/apache/conf/ssl.crt/localhost.crt
C:/xampp/apache/conf/ssl.key/localhost.key

Аватар пользователя riaron986 riaron986 2 августа в 21:50

Ключ -addext доступен в OpenSSL 1.1.1+. SAN обязателен, иначе предупреждение не исчезнет.
если делал по первому методу это нужно?

Аватар пользователя riaron986 riaron986 8 августа в 16:17

Поставил monjaro там на xampp. Получилось установить php8.4, но появилась новая проблема друпал види php 8.2. где в Линукс надо менять версию php чтобы поменялась версия отклика на версию php

Аватар пользователя riaron986 riaron986 8 августа в 16:18

Поставил monjaro там на xampp. Получилось установить php8.4, но появилась новая проблема друпал видит php 8.2. где в Линукс надо менять версию php чтобы поменялась версия отклика на версию php