Let's Encrypt SSL Certificate File Not Found Ошибка, но все еще работает

Я использую сертификаты SSL от Let's Encrypt . Я установил их на моем компьютере с Ubuntu, на котором запущен Apache.

7
задан 29 April 2016 в 20:01
5 ответов

После нескольких бессонных ночей я наконец заставил его работать. (избыточное заявление) Мы все знаем, что это были разрешения, но где именно было что проверить.

Я продолжал работать с / 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).

Надеюсь, это кому-то поможет.

5
ответ дан 2 December 2019 в 23:25

Как первоначально прокомментировал Ян Терле , изменение разрешений для "активного" каталога теперь устраняет проблему:

sudo chmod -R 0755 /etc/letsencrypt/live

Примечание: я наблюдал ту же ошибку, что и OP.

Это было подтверждено:
Ubuntu 16.04.2 LTS
Apache / 2.4.18 (Ubuntu)

0
ответ дан 2 December 2019 в 23:25

Разрешения для файлов сертификатов лучше оставить очень жесткими. Чтобы разрешить соответствующим процессам доступ к файлам сертификатов: запустите apache с помощью следующих команд.

sudo service httpd start

Альтернативно перезапустите изящно с помощью этой команды:

sudo service httpd graceful
1
ответ дан 2 December 2019 в 23:25

В моем случае проблема не в файлах и разрешениях. Я пытался перезапустить сервер с помощью apachectl restart или проверить конфигурацию ( apachectl -t или apachectl configtest ). Пользователь, выполняющий команду (я), просто не имел необходимых разрешений для доступа к сертификатам. Мне просто нужно было добавить к командам префикс sudo , чтобы запустить их от имени пользователя root! Ошибок больше нет, тест конфигурации возвращает «Синтаксис ОК», и я могу перезапустить сервер. (Хорошо, я немного смущен, что мне потребовалось так много времени, чтобы понять это ...)

6
ответ дан 2 December 2019 в 23:25

Согласен с ответом timeSmith о том, что права доступа к этим файлам и папкам намеренно ограничены и должны быть оставлены как 0700.

Вам необходимо запустить команды service httpd или apachectl как sudo, чтобы эти процессы имели привилегии суперпользователя и получали доступ на чтение к папкам и файлам сертификата letsencrypt. .

3
ответ дан 25 April 2020 в 15:04

Теги

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