httpd возвращает «SSLCertificateFile: file» /var/iwww/certs/msdfw/c.pem 'не существует или пуст »

Недавно мне пришлось перезагрузить сервер из-за некоторых проблем и прочего. И вот, я пытаюсь настроить его снова, и у меня просто не получается. Я успешно установил httpd , и он работает с моими веб-сайтами. Но когда я пытаюсь добавить сертификат SSL, CentOS осмеливается солгать мне, что его не существует. Вот результат выполнения команды journalctl -xe ;

Sep 26 17:00:11 localhost systemd[1]: Starting The Apache HTTP Server...
-- Subject: Unit httpd.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has begun starting up.
Sep 26 17:00:11 localhost httpd[5579]: AH00526: Syntax error on line 15 of             
/etc/httpd/enabled/msdfw.conf:
Sep 26 17:00:11 localhost httpd[5579]: SSLCertificateFile: file     
'/var/iwww/certs/msdfw/c.pem' does not exist or is empty
Sep 26 17:00:11 localhost systemd[1]: httpd.service: main process exited,     
code=exited, status=1/FAILURE
Sep 26 17:00:11 localhost kill[5581]: kill: cannot find process ""
Sep 26 17:00:11 localhost systemd[1]: httpd.service: control process exited, 
code=exited status=1
Sep 26 17:00:11 localhost systemd[1]: Failed to start The Apache HTTP Server.
-- Subject: Unit httpd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has failed.
--
-- The result is failed.
Sep 26 17:00:11 localhost systemd[1]: Unit httpd.service entered failed state.
Sep 26 17:00:11 localhost systemd[1]: httpd.service failed.

Я проверил файл, и он там. Я уже пытался передать все права собственности пользователю apache , я ' Мы передали его группе apache и изменили все разрешения на 777. Ничего из этого не сработало (и разрешения были отменены). Я пробовал lsof c.pem , но ничего не вышло. Это VirtualHost;

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    RewriteEngine on
    RewriteRule ^/?(.*) https://example.com/$1 [R,L]
</VirtualHost>
<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/msdfw
    ErrorLog /var/iwww/logs/e-msdfw
    CustomLog /var/iwww/logs/c-msdfw combined
    DirectoryIndex index.php
    SSLEngine on
    SSLCertificateFile /var/iwww/certs/msdfw/c.pem
    SSLCertificateKeyFile /var/iwww/certs/msdfw/p.key
    SSLCertificateChainFile /var/iwww/certs/msdfw/b.pem
    <Directory /var/www/msdfw/>
            Require all granted
    </Directory>
</VirtualHost>

Я уже установил mod_ssl , поэтому не думаю, что это все. Я выполнил sudo -u apache cat /var/iwww/certs/msdfw/c.pem, чтобы проверить, может ли он его прочитать, и это возможно. Сертификат может быть правильно проанализирован OpenSSL. Итак, я не уверен, в чем проблема. Всем, кто может помочь, протяните, пожалуйста, руку. Спасибо!

Дополнительная информация:

  • ОС: CentOS Linux, выпуск 7.4.1708
  • Не уверен, в какую категорию попадает эта категория, но ее минимальная.
0
задан 27 September 2017 в 03:17
3 ответа

Похоже, я ошибался. Это связано с сертификатами, помеченными system_u или unlimited_u . Они должны быть помечены system_u , чтобы их мог читать httpd .

Узнайте, как изменить ярлыки здесь .

0
ответ дан 5 December 2019 в 07:26

Итак ... Я решил проблему, но не полностью. Я попытался удалить c.pem , чтобы проверить, распознает ли он каталог по-прежнему, и выдал некоторую ошибку, в которой говорится;

/ var / iwww / certs / msdfw /: Это каталог

Но это не так. Все еще та же ошибка. Итак, я был глуп и вставил;

SSLCertificateFile whoami

Да, я не знаю, о чем я думал. Но он сказал, что в / etc / httpd / whoami нет файла или он пуст. В любом случае, я переместил все это в / etc / httpd / certs / msdfw / и перенастроил VirtualHost.

И это сработало ...

TL; DR: Если вы получаете это и больше ничего не работает, переместите его в / etc / httpd .

0
ответ дан 5 December 2019 в 07:26

Я знаю, что это старая тема, но у меня была аналогичная проблема в моей системе. Я использую OL8 с Apache в качестве веб-сервера.Ничего из того, что я сделал, не сработает. Пока я не выполнил эту команду:

sudo chcon -R -t httpd_config_t letsencrypt/

Моя проблема заключалась в том, что SELinux блокировал запрос.

Из опыта следует, что для всего, что должно запускаться Apache, должен быть установлен как минимум httpd_config_t.

1
ответ дан 13 March 2021 в 18:36

Теги

Похожие вопросы