Я намагаюся встановити захищене з'єднання (https) у nginx.
Але я трохи стурбований дозволами приватного ключа, які не згадуються в жодному підручнику.
Чи варто їх змінити? До того, що?
Я намагаюся встановити захищене з'єднання (https) у nginx.
Але я трохи стурбований дозволами приватного ключа, які не згадуються в жодному підручнику.
Чи варто їх змінити? До того, що?
Відповіді:
Приватні ключі повинні мати сильне обмеження читання. Налаштування дозволів на 600
власність та належність їм root
має працювати. Однак є й інші безпечні налаштування дозволів - Ubuntu зберігає ключі в каталозі з власником, root
групою ssl-cert
та дозволами 710
. Це означає, що лише члени програми ssl-cert
мають доступ до будь-яких файлів у цьому каталозі. Приватні ключі мають групу ssl-cert
, власника root
та дозволи 640
.
У мене виникла проблема з налаштуванням 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
.
Сподіваюся, це комусь корисно.
nginx
групі. Веб-сервер зможе ними користуватися, навіть якщо вони читаються лишеroot
(як належить).