====== Копирование сертификатов с NPM на сервер (VM) ======
Скрипт копирует сертификаты с NPM Nginx Proxy Manager) на промежуточную машину с OMV7 (Openmediavaut) по NFS.\\
На OMV в секции **Services -> NFS -> Shares -> Extra optinons** необходимо добавить **rw,subtree_check,secure,no_root_squash**, иначе доступа на запись не будет.\\
Предварительно на всех VM установлен и настроен **NFS client**, на OMV7 **NFS Server**.\\
[[https://interface31.ru/tech_it/2023/07/nastraivaem-setevuyu-faylovuyu-sistemu-nfs-v-debian-i-ubuntu.html|Источник]]
===== NPM =====
Создать каталог в домашней директории пользователя **root**\\
mkdir ~/scripts
Содать файл в каталоге **scripts**
touch ~/script/copy_certs.sh
Скопировать и вставить
#!/bin/bash
# Certificate directory on the server
REMOTE_DIR="/srv/appdata/npm/letsencrypt/archive"
# Mounting the certificate directory
mount -t nfs4 IP_OMV:/certs /mnt/nfs/certs
# Number proxy host npm-X
for varname in 1 2
do
if [$varname -eq 0]
then
break
fi
mkdir /mnt/nfs/certs/npm-$varname
cat "$(ls -rt $REMOTE_DIR/npm-$varname/fullchain* | tail -n1)" | tee /mnt/nfs/certs/npm-$varname/fullchain.pem
cat "$(ls -rt $REMOTE_DIR/npm-$varname/privkey* | tail -n1)" | tee /mnt/nfs/certs/npm-$varname/privkey.pem
done
umount -t nfs4 IP_OMV:/certs /mnt/nfs/certs
history -c
reset
где
**for varname in 1 2 3 4 5 6 7 8 9 10** - цифра соответствует номеру папки с сертификатами типа **npm-X**;\\
**IP_OMV** ip адрес OMV7.
Cделать исполняемый скрипт для владельца файла
mcedit ~/scripts/copy_certs.sh
Cделать исполняемый скрипт для владельца файла
chmod u+x ~/scripts/copy_certs.sh
В cron задаем его выполнение по расписанию.
crontab -e
0 0 25 */2 * /root/scripts/copy_certs.sh
Если, что то не работает смотрим log
sudo grep 'CRON' /var/log/syslog/
===== На сервере (VM) =====
Создать каталог\\
mkdir ~/scripts
Содать файл\\
touch ~/script/copy_cert.sh
Скопировать и вставить
#!/bin/bash
# Certificate directory on the server
CERT_DIR="/etc/apache2/certs/WEB_SITE"
# NPM certificate directory
CERT_DIR_NPM="npm-1"
# Mounting the certificate directory
mount -t nfs4 IP_OMV:/certs/$CERT_DIR_NPM /mnt/nfs/cert
# Copying certificates to the server
cp /mnt/nfs/cert/privkey.pem $CERT_DIR/privkey.pem
cp /mnt/nfs/cert/fullchain.pem $CERT_DIR/fullchain.pem
# Changing certificate permissions
chmod 400 $CERT_DIR/privkey.pem
# Restart Apache2
systemctl restart apache2
# or Restart NGINX
#service nginx restart
# Unmounting the certificate directory
umount -t nfs4 IP_OMV:/certs/$CERT_DIR_NPM /mnt/nfs/cert
history -c
reset
Cделать исполняемый скрипт для владельца файла
mcedit ~/scripts/copy_cert.sh
Cделать исполняемый скрипт для владельца файла
chmod u+x ~/scripts/copy_cert.sh
В cron задаем его выполнение по расписанию.
crontab -e
3 0 25 */2 * /root/scripts/copy_cert.sh