Назад | Перейти на главную страницу

Приложение Node.js на ElasticBeanstalk не может получить доступ к файлу закрытого ключа на сервере

У меня есть приложение node.js, работающее на ElasticBeanstalk. Часть его конфигурации - это путь к ключевому файлу .p12. Когда приложение пытается использовать ключевой файл, выдается исключение с отказом в разрешении.

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

Приложение является пример сервера синтаксического анализа clone, который устанавливается в / var / app / current на сервере EB. Я поместил ключевой файл в /home/ec2-user/.ssh. Я попытался установить для ключевого файла права доступа 400, 644 и даже 777. В самом каталоге .ssh их 700. Я вижу следующую ошибку:

пример parse-server, работающий на порту 8081. /var/app/current/node_modules/parse-server/lib/ParseServer.js:339 throw err; ^

Ошибка: EACCES: в разрешении отказано, откройте '/home/ec2-user/.ssh/key.p12' с ошибкой (родной)

В итоге у меня сработало создание каталога для ключа .p12 и передача права владения каталогом и ключом пользователю nodejs.

sudo mkdir -p /etc/foo
sudo chown nodejs /etc/foo
sudo chmod 700 /etc/foo

sudo cp my_key.p12 /etc/foo

sudo chown nodejs /etc/foo/my_key.p12
sudo chmod 600 /etc/foo/my_key.p12

У меня тоже это получилось при попытке установить / запустить etherpad

Оказывается, дело не в перманентности файлов, а в директории более высокого уровня.

Если я сделаю это как root, я получу:

ls -l /etc/letsencrypt/live/domain/privkey.pem
lrwxrwxrwx 1 root root 42 May 20 13:03 /etc/letsencrypt/live/domain/privkey.pem -> ../../archive/domain/privkey1.pem

Но если я запустил ту же команду, что и etherpad Мне отказали в разрешении.

Делать ls -ld в каждом каталоге вверх показал, что live имел разрешения rwx------, то есть каталог нельзя было ни прочитать, ни перечислить.

chmod 755 /etc/letsencrypt/live /etc/letsencrypt/archive

Это решает проблему в моем случае. Ваш пробег может отличаться.