Я пытаюсь установить Apache с SSL на CentOS6 использовать в качестве сервера разработки.
Я следовал указанным здесь инструкциям, чтобы заставить SSL работать: http://wiki.centos.org/HowTos/Https (Примечание: Apache работал нормально, пока я не попытался включить SSL.)
Когда мне пришлось расстаться с перезапуском Apache, сервер не запускался. Я просто получаю следующее сообщение об ошибке:
[Mon Feb 13 18:31:36 2012] [error] (13)Permission denied: Init: Can't open
server certificate file /etc/pki/tls/certs/ca.crt
Я увидел, что зарегистрированный сертификат принадлежит моему пользователю и моей группе, поэтому я изменил его на root:root
но это не имело значения. Я не знаю, что еще попробовать и на что посмотреть. Спасибо.
Примечание. Мои вопросы похожи на этот но ошибка в другом.
Итак, для тех, кто не понимает, какой на самом деле ответ здесь:
Это проблема с selinux. Файлы могут иметь разные «контексты» selinux, и файл с неправильным контекстом будет нечитаемым демоном httpd, даже если обычные разрешения верны. В моем случае решение заключалось в следующем:
chcon --reference /file/with/correct/context /path/to/certificate/file
Что скопирует контекст из указанного файла в сертификат. Если у вас нет файла, на который вы можете сослаться, более сложный способ (из-за того, что вам нужно вводить его) для установки правильного контекста:
chcon unconfined_u:object_r:httpd_config_t:s0 /path/to/certificate/file