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

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

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

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

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

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

2 ответа

В итоге мне удалось создать каталог для ключа.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

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

Другие вопросы по тегам