====== Копирование сертификатов с 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