Я ищу способ запустить узел через PM2 при чтении закрытого ключа SSL, который находится в защищенном каталоге.
Подробности: стек Bitnami LEMP с Node
разрешения для / etc / ssl / private:
drwx------ 2 root root 4096 private
разрешения для ключевого файла:
-rw-r----- 1 root root 1704 my_key_file.key
С указанными выше разрешениями и nginx, и php работают нормально без каких-либо проблем (я предполагаю, что это потому, что nginx мастер процесс запускается как root?), и запуск node как sudo.
Однако я бы хотел запустить этот код узла как пользователь без полномочий root, поскольку это снижает риск безопасности в случае компрометации сервера узла.
Какие у меня здесь варианты? Насколько я понимаю, это примерно такие варианты:
Любая помощь приветствуется! Спасибо
Вы можете создать группу под названием ssl-cert
и добавить pm2user
в эту группу.
sudo groupadd ssl-cert
sudo usermod -a -G ssl-cert pm2user
Затем измените группу каталога /etc/ssl/private
и его содержание должно быть ssl-cert
. Вам также необходимо будет добавить разрешения на выполнение группы для private
каталог.
sudo chown -R root:ssl-cert /etc/ssl/private/
sudo chmod 650 /etc/ssl/private/
sudo chmod 640 /etc/ssl/private/my_key_file.key
Это позволит PM2 прочитать файл. Это более или менее безопасно? Это может зависеть от того, у кого есть доступ к серверу и насколько широко ssl-cert
группа является общей. Сведите использование группы к абсолютному минимуму: только учетные записи без входа. Возможно, вам потребуется перезапустить службы Nginx и PM2, чтобы они повторно подключились с новыми разрешениями.