Разрешения на ключ SSL?


15

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

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

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

Ответы:


15

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


2
Для определенности добавлю: при использовании nginx в CentOS 7 нет необходимости делать сертификат или закрытый ключ доступным для чтения для членов nginxгруппы. Веб-сервер сможет использовать их, даже если они доступны для чтения только root(как и должно быть).

3

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

Обычно nginx запускается rootпользователем как init-скрипты / 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.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.