13

Я пытаюсь настроить безопасное соединение (https) в nginx.

Но я немного беспокоюсь о разрешениях закрытого ключа, которые не упоминаются ни в одном учебнике.

Должен ли я изменить их? К чему?

2 ответа2

15

Закрытые ключи должны иметь строго ограниченное чтение. Установка разрешений на 600 и принадлежащих root должна работать. Однако существуют и другие параметры безопасных разрешений - Ubuntu хранит ключи в каталоге с владельцем root и группой ssl-cert и разрешениями 710 . Это означает, что только члены ssl-cert могут получить доступ к любым файлам в этом каталоге. Затем закрытые ключи имеют группу ssl-cert , владельца root и разрешения 640 .

1

У меня возникла проблема с настройкой nginx, и я столкнулся с этим вопросом. Другой ответ здесь уже напрямую ответил на вопрос, но я подумал, что немного больше информации будет полезно.

Обычно nginx запускается от имени пользователя root помощью сценариев инициализации / systemd. Однако nginx также может переключаться на менее привилегированного пользователя для нормальной работы. Итак, мой вопрос был, какой пользователь используется для загрузки сертификата / ключа ssl? Начальный привилегированный пользователь или тот, на которого переключаются?

К счастью, nginx использует начальные разрешения для чтения сертификата и ввода ключа в память перед переключением пользователей. Поэтому обычно вы можете оставить ключи с очень ограниченными разрешениями, так как они загружаются nginx, когда он все еще работает от имени пользователя root .

Проблема, с которой я столкнулся, привела меня к тому, что я определял ssl_certificate только в своих server блоках в nginx.conf . Я получал сообщения об ошибках типа [error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking когда я понял, что мои ключи находятся в нужном месте. Эта проблема заключалась в том, что у меня не было ssl_certificate на уровне http nginx.conf .

Надеюсь, что это полезно для кого-то.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .