Показать страницуИстория страницыСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Копирование сертификатов с 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**\\ <code bash> mkdir ~/scripts </code> Содать файл в каталоге **scripts** <code> touch ~/script/copy_certs.sh </code> Скопировать и вставить <file bash 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 </file> где **for varname in 1 2 3 4 5 6 7 8 9 10** - цифра соответствует номеру папки с сертификатами типа **npm-X**;\\ **IP_OMV** ip адрес OMV7. Cделать исполняемый скрипт для владельца файла <code> mcedit ~/scripts/copy_certs.sh </code> Cделать исполняемый скрипт для владельца файла <code> chmod u+x ~/scripts/copy_certs.sh </code> В cron задаем его выполнение по расписанию. <code>crontab -e</code> <code>0 0 25 */2 * /root/scripts/copy_certs.sh</code> Если, что то не работает смотрим log <code>sudo grep 'CRON' /var/log/syslog/</code> ===== На сервере (VM) ===== Создать каталог\\ <code bash>mkdir ~/scripts</code> Содать файл\\ <code>touch ~/script/copy_cert.sh</code> Скопировать и вставить <file bash 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 </file> Cделать исполняемый скрипт для владельца файла <code>mcedit ~/scripts/copy_cert.sh</code> Cделать исполняемый скрипт для владельца файла <code>chmod u+x ~/scripts/copy_cert.sh</code> В cron задаем его выполнение по расписанию. <code>crontab -e</code> <code>3 0 25 */2 * /root/scripts/copy_cert.sh</code> Последнее изменение: 30:09:2025 23:51