Это старая версия документа!


Копирование сертификатов с NPM на сервер (VM)

Скрипт копирует сертификаты с NPM на промежуточную машину с OMV7 (Openmediavaut) по NFS.
На OMV в секции Services → NFS → Shares → Extra optinons необходимо добавить rw,subtree_check,secure,no_root_squash, иначе доступа на запись не будет.
Предварительно на всех VM установлен и настроен NFS client, на OMV7 NFS Server.
Создать каталог в домашней директории пользователя root

mkdir ~/scripts

Содать файл в каталоге scripts

touch ~/script/cert_from_npm.sh

Скопировать и вставить

cert_from_npm.sh
#!/bin/bash
 
# Server details
REMOTE_DIR="/srv/appdata/npm/letsencrypt/archive"
mount -t nfs4 172.26.1.252:/cert /mnt/nfs/cert
 
for varname in 2 4 13 17 18 19 20 21 23 27
do
if [$varname -eq 0]
then
break
 
fi
mkdir /mnt/nfs/cert/npm-$varname
cat "$(ls -rt $REMOTE_DIR/npm-$varname/fullchain* | tail -n1)" |  tee /mnt/nfs/c
cat "$(ls -rt $REMOTE_DIR/npm-$varname/privkey* | tail -n1)" | tee /mnt/nfs/cert
 
done
 
umount -t nfs4 172.26.1.252:/cert /mnt/nfs/cert
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/cert_from_npm.sh

Cделать исполняемый скрипт для владельца файла

chmod u+x ~/scripts/cert_from_npm.sh

В cron заносим его выполнение по необходимому вам расписанию.

crontab -e
0 0 28 */2 * /root/scripts/cert_from_npm.sh
#!/bin/bash
 
CRT_DIR="/var/www/r7-office/Data/certs/"
 
mount -t nfs4 IP_OMV:/crt /mnt/crt
 
cp /mnt/crt/npm-8/privkey.pem $CRT_DIR/privkey.pem
cp /mnt/crt/npm-8/fullchain.pem $CRT_DIR/fullchain.pem
 
chmod 400 $CRT_DIR/privkey.pem
 
sudo service nginx restart
 
umount -t nfs4 IP_OMV:/crt /mnt/crt
  • Последнее изменение: 23:09:2025 23:22