Приложение 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
Это исправляет проблему в моем случае. Ваш пробег может варьироваться.