Автор Тема: Apache2 ошибка при подключении модуля SLL [решено]  (Прочитано 123 раз)

Оффлайн reshta

  • Участник
  • *
  • Сообщений: 124
Здравствуйте, уважаемые формчане.
Очевидно, после какого-то обновления p10 перестал запускаться Apache. В результате эксперимента было выяснено, что он перестаёт работать при подключении модуля ssl. Ошибка не информативна, прошу помощи.
Статус сервиса изначально:
Спойлер
]# systemctl status httpd2
● httpd2.service - The Apache2 HTTP Server
     Loaded: loaded (/lib/systemd/system/httpd2.service; disabled; vendor preset: disabled)
     Active: active (running) since Thu 2025-09-25 10:07:59 +07; 3min 19s ago
    Process: 26598 ExecStartPre=/usr/bin/httpd2-cert-sh generate httpd2 (code=exited, status=0/SUCCESS)
   Main PID: 26599 (httpd2)
     Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"
      Tasks: 9 (limit: 9267)
     Memory: 59.1M
        CPU: 333ms
     CGroup: /system.slice/httpd2.service
             ├─ 26599 /usr/sbin/httpd2 -DFOREGROUND -k start
             ├─ 26600 /usr/sbin/httpd2 -DFOREGROUND -k start
             ├─ 26601 /usr/sbin/httpd2 -DFOREGROUND -k start
             ├─ 26602 /usr/sbin/httpd2 -DFOREGROUND -k start
             ├─ 26603 /usr/sbin/httpd2 -DFOREGROUND -k start
             ├─ 26604 /usr/sbin/httpd2 -DFOREGROUND -k start
             ├─ 26605 /usr/sbin/httpd2 -DFOREGROUND -k start
             ├─ 26606 /usr/sbin/httpd2 -DFOREGROUND -k start
             └─ 26607 /usr/sbin/httpd2 -DFOREGROUND -k start

сен 25 10:07:59 hostelc systemd[1]: Starting The Apache2 HTTP Server...
сен 25 10:07:59 hostelc systemd[1]: Started The Apache2 HTTP Server.

Подключаем модуль ssl:
Спойлер
[root@hostelc ~]# a2enmod ssl
Module ssl installed;
[root@hostelc ~]# systemctl restart httpd2
Job for httpd2.service failed because the control process exited with error code.
See "systemctl status httpd2.service" and "journalctl -xeu httpd2.service" for details.
[root@hostelc ~]# systemctl status httpd2.service
× httpd2.service - The Apache2 HTTP Server
     Loaded: loaded (/lib/systemd/system/httpd2.service; disabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Thu 2025-09-25 10:34:31 +07; 17s ago
    Process: 26942 ExecStartPre=/usr/bin/httpd2-cert-sh generate httpd2 (code=exited, status=0/SUCCESS)
    Process: 26943 ExecStart=/bin/sh -c exec /usr/sbin/${HTTPD} -DFOREGROUND -k start (code=exited, status=1/FAILURE)
   Main PID: 26943 (code=exited, status=1/FAILURE)
     Status: "Reading configuration..."
        CPU: 87ms

сен 25 10:34:31 hostelc systemd[1]: Starting The Apache2 HTTP Server...
сен 25 10:34:31 hostelc sh[26943]: AH00526: Syntax error on line 36 of /etc/httpd2/conf/sites-enabled/000-xxxxxx_https.ru.conf:
сен 25 10:34:31 hostelc sh[26943]: SSLCertificateFile: file '/home/letsencryptcerts/certs/xxxxxx.ru/fullchain.pem' does not exist or is emp>
сен 25 10:34:31 hostelc systemd[1]: httpd2.service: Main process exited, code=exited, status=1/FAILURE
сен 25 10:34:31 hostelc systemd[1]: httpd2.service: Failed with result 'exit-code'.
сен 25 10:34:31 hostelc systemd[1]: Failed to start The Apache2 HTTP Server.

При этом файл SSLCertificateFile: file '/home/letsencryptcerts/certs/xxxxxx.ru/fullchain.pem существует, он верный (работает в другой конфигурации), и доступ на чтение есть всем. Если убрать строчку 36 из конфигурации, ssl модуль начнёт ругаться на следующий сертификат и так далее.

Проверка синтаксиса конфигурации проходит успешно. Да и работают эти конфигурации на другой машине.

Танцы с бубном в виде очиски кэша и переустановки апача и самого модуля результа не дали.

Из журнала:
Спойлер
[root@hostelc ~]# journalctl -xeu httpd2.service
░░
░░ Процесс остановки юнита httpd2.service был завершен.
сен 25 10:34:31 hostelc systemd[1]: httpd2.service: Consumed 1.715s CPU time.
░░ Subject: Потребленные юнитом ресурсы
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ Юнит httpd2.service завершен. Приводится статистика по потребленным им ресурсам.
сен 25 10:34:31 hostelc systemd[1]: Starting The Apache2 HTTP Server...
░░ Subject: Начинается запуск юнита httpd2.service
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ Начат процесс запуска юнита httpd2.service.
сен 25 10:34:31 hostelc sh[26943]: AH00526: Syntax error on line 36 of /etc/httpd2/conf/sites-enabled/000-xxxxxx_https.ru.conf:
сен 25 10:34:31 hostelc sh[26943]: SSLCertificateFile: file '/home/letsencryptcerts/certs/xxxxxx.ru/fullchain.pem' does not exist or is emp>
сен 25 10:34:31 hostelc systemd[1]: httpd2.service: Main process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ An ExecStart= process belonging to unit httpd2.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 1.
сен 25 10:34:31 hostelc systemd[1]: httpd2.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ The unit httpd2.service has entered the 'failed' state with result 'exit-code'.
сен 25 10:34:31 hostelc systemd[1]: Failed to start The Apache2 HTTP Server.
░░ Subject: Ошибка юнита httpd2.service
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ Произошел сбой юнита httpd2.service.
░░
░░ Результат: failed.
« Последнее редактирование: 26.09.2025 05:41:02 от Skull »

Оффлайн NickM

  • Участник
  • *
  • Сообщений: 977
сен 25 10:34:31 hostelc sh[26943]: SSLCertificateFile: file '/home/letsencryptcerts/certs/xxxxxx.ru/fullchain.pem' does not exist or is emp>
А, что у Вас в содержимом указанного файла? Попробуйте оставить только один сертификат.

Оффлайн reshta

  • Участник
  • *
  • Сообщений: 124
А, что у Вас в содержимом указанного файла? Попробуйте оставить только один сертификат.
Конкретно в этом файле цепочка из двух сертификатов каждый начинается с -----BEGIN SERTIFICATE----- потом перевод строки 0A, далее набор символов - тело сертификата. Удалил строки BEGIN и ЕND вмести с символами перевода, оставил только тело, - ошибка та же "файл отсутствует или пустой"

Оффлайн reshta

  • Участник
  • *
  • Сообщений: 124
Переместил файл сертификата в совсем другой каталог от корня, правва 777 на каталог и на файл. Теперь он не вызывает ошибку. Апач ругается на следующий файл сертификата. Но в старом месте и каталог и файл то же был 777.

Что может быть?
« Последнее редактирование: 25.09.2025 08:14:11 от reshta »

Оффлайн NickM

  • Участник
  • *
  • Сообщений: 977
« Последнее редактирование: 25.09.2025 08:52:49 от NickM »

Оффлайн reshta

  • Участник
  • *
  • Сообщений: 124
chroot
Поясните, подробнее, пожалуйста. Я, не понял как можно chroot применить в данном случае?

Оффлайн NickM

  • Участник
  • *
  • Сообщений: 977
Хранить конфиги в /home не самая лучшая идея, т.к. прав доступа у сервисов, которые выполняются от имени собственных УЗ, может не хватить.

Наверняка у веб-сервера "Apache" имеется собственный каталог для сертификатов, в котором их и рекомендуется размещать;

Поясните, подробнее, пожалуйста. Я, не понял как можно chroot применить в данном случае?
Вставил ссылку в предыдущее сообщение.

Оффлайн reshta

  • Участник
  • *
  • Сообщений: 124
Наверняка у веб-сервера "Apache" имеется собственный каталог для сертификатов, в котором их и рекомендуется размещать;
Вы правы,похоже, действительнно, это chroot, и есть сформированные при установке Апач каталоги /etc/httpd2/conf/ssl.crt и ssl.key. Если сертификаты к сайту и ключ разместить в них, или в их подкаталогах, то модуль mod_ssl получает к ним доступ и сайт работает.
Вопрос решён.
Большое спасибо!