Дозволи для ключа SSL?


15

Я намагаюся встановити захищене з'єднання (https) у nginx.

Але я трохи стурбований дозволами приватного ключа, які не згадуються в жодному підручнику.

Чи варто їх змінити? До того, що?

Відповіді:


16

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


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

4

У мене виникла проблема з налаштуванням nginx, і я натрапив на це питання. Інша відповідь тут вже безпосередньо відповіла на питання, але я подумав, що трохи більше інформації буде корисним.

Як правило, nginx запускається як rootкористувач за допомогою init script / 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.