Я использую certbot для создания файлов сертификатов. Файлы сертификата создан в /etc/letsencrypt/live/...
. Живая папка создается certbot и доступна только администраторам.
Раньше я копировал эти файлы в папку своего приложения, и это работало нормально. Но было неправильно копировать файлы сертификатов.
Итак, мне интересно, есть ли возможность оставить файлы там, где они есть. Я пытался применить это на практике, но не могу предоставить своему приложению доступ к папке. У меня не было проблем с настройкой путей, но у него нет прав доступа к папке.
Мне интересно, как я могу предоставить своему приложению доступ к файлам.
Приложение запускается с использованием файла конфигурации systemd. Изначально у меня была эта конфигурация systemd:
[Unit]
Description=my-service
Documentation=http://documentation.domain.com
After=network.target
[Service]
Type=simple
TimeoutSec=0
User=ubuntu
ExecStart=/usr/bin/node /home/ubuntu/my-service/server.js
Restart=on-failure
[Install]
WantedBy=multi-user.target
Я попытался добавить следующую строку, но это не имело значения.
PermissionsStartOnly=true
Не думаю, что копирование файлов сертификатов из /etc/letsencrypt/live
в папку приложения неверно. Я предлагаю вам сделать это, определив собственный сценарий в /etc/letsencrypt/renewal-hooks/deploy
папка, которая также будет перезагружать приложение при каждом обновлении соответствующего сертификата. Например:
#!/bin/sh
# /etc/letsencrypt/renewal-hooks/deploy/example-com_deploy.sh
set -e
for domain in $RENEWED_DOMAINS; do
case $domain in
example.com)
daemon_cert_root=/etc/some-daemon/certs
# Make sure the certificate and private key files are
# never world readable, even just for an instant while
# we're copying them into daemon_cert_root.
umask 077
cp "$RENEWED_LINEAGE/fullchain.pem" "$daemon_cert_root/$domain.cert"
cp "$RENEWED_LINEAGE/privkey.pem" "$daemon_cert_root/$domain.key"
# Apply the proper file ownership and permissions for
# the daemon to read its certificate and key.
chown some-daemon "$daemon_cert_root/$domain.cert" \
"$daemon_cert_root/$domain.key"
chmod 400 "$daemon_cert_root/$domain.cert" \
"$daemon_cert_root/$domain.key"
service some-daemon restart >/dev/null
;;
esac
done
Пожалуйста, проверьте этот URL для деталей: https://certbot.eff.org/docs/using.html#renewing-certificates