Разрешения на ключ SSL?
Я пытаюсь настроить безопасное соединение (https) в nginx.
Но я немного обеспокоен разрешениями закрытого ключа, которые не упоминаются ни в одном учебнике.
Должен ли я изменить их? К чему?
2 ответа
Закрытые ключи должны иметь строго ограниченное чтение. Установка разрешений для 600
и принадлежит root
должно сработать. Тем не менее, есть и другие настройки безопасных разрешений - Ubuntu хранит ключи в каталоге с владельцем root
и группа ssl-cert
и разрешения 710
, Это означает, что только члены ssl-cert
может получить доступ к любым файлам в этом каталоге. Закрытые ключи тогда есть группа ssl-cert
владелец root
и разрешения 640
,
У меня возникла проблема с настройкой 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
,
Надеюсь, это полезно для кого-то.