Недавно мне пришлось перезагрузить сервер из-за некоторых проблем и прочего. И вот, я пытаюсь настроить его снова, и у меня просто не получается. Я успешно установил 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. Итак, я не уверен, в чем проблема. Всем, кто может помочь, протяните, пожалуйста, руку. Спасибо!
Дополнительная информация:
Итак ... Я решил проблему, но не полностью. Я попытался удалить c.pem
, чтобы проверить, распознает ли он каталог по-прежнему, и выдал некоторую ошибку, в которой говорится;
/ var / iwww / certs / msdfw /: Это каталог
Но это не так. Все еще та же ошибка. Итак, я был глуп и вставил;
SSLCertificateFile whoami
Да, я не знаю, о чем я думал. Но он сказал, что в / etc / httpd / whoami
нет файла или он пуст. В любом случае, я переместил все это в / etc / httpd / certs / msdfw /
и перенастроил VirtualHost.
И это сработало ...
TL; DR: Если вы получаете это и больше ничего не работает, переместите его в / etc / httpd
.
Я знаю, что это старая тема, но у меня была аналогичная проблема в моей системе. Я использую OL8 с Apache в качестве веб-сервера.Ничего из того, что я сделал, не сработает. Пока я не выполнил эту команду:
sudo chcon -R -t httpd_config_t letsencrypt/
Моя проблема заключалась в том, что SELinux блокировал запрос.
Из опыта следует, что для всего, что должно запускаться Apache, должен быть установлен как минимум httpd_config_t
.