Я использую сертификаты SSL от Let's Encrypt . Я установил их на моем компьютере с Ubuntu, на котором запущен Apache.
После нескольких бессонных ночей я наконец заставил его работать. (избыточное заявление) Мы все знаем, что это были разрешения, но где именно было что проверить.
Я продолжал работать с / ect / letsencrypt / live , каталогами и файлами под этим. Я продолжал менять разрешения с оригинала на 0755 и 0777. Чего я не сразу заметил, так это того, что / etc / letsencrypt / live была ссылкой, созданной из / etc / letsencrypt / archive, и у нее был 0700 разрешение. Вот почему он не смог прочитать файл. После изменения разрешения / etc / letsencrypt / archive на 0755 , apachectl configtest
уже ответил Syntax OK
.
Хотя исходная проблема была решена, я верну ее к Let's Encrypt , потому что это была автоматическая установка сертификатов. Что-то подобное не должно происходить в «авто». Но моя установка могла иметь какое-то отношение к проблеме с разрешениями, так как я установил ее под пользователем без полномочий root (но я сделал sudo).
Надеюсь, это кому-то поможет.
Разрешения для файлов сертификатов лучше оставить очень жесткими. Чтобы разрешить соответствующим процессам доступ к файлам сертификатов: запустите apache с помощью следующих команд.
sudo service httpd start
Альтернативно перезапустите изящно с помощью этой команды:
sudo service httpd graceful
В моем случае проблема не в файлах и разрешениях. Я пытался перезапустить сервер с помощью apachectl restart
или проверить конфигурацию ( apachectl -t
или apachectl configtest
). Пользователь, выполняющий команду (я), просто не имел необходимых разрешений для доступа к сертификатам. Мне просто нужно было добавить к командам префикс sudo
, чтобы запустить их от имени пользователя root! Ошибок больше нет, тест конфигурации возвращает «Синтаксис ОК», и я могу перезапустить сервер. (Хорошо, я немного смущен, что мне потребовалось так много времени, чтобы понять это ...)
Согласен с ответом timeSmith о том, что права доступа к этим файлам и папкам намеренно ограничены и должны быть оставлены как 0700
.
Вам необходимо запустить команды service httpd
или apachectl
как sudo
, чтобы эти процессы имели привилегии суперпользователя и получали доступ на чтение к папкам и файлам сертификата letsencrypt. .