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


Копирование сертификатов с 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
 
# Certificate directory on the server
REMOTE_DIR="/srv/appdata/npm/letsencrypt/archive"
# Mounting the certificate directory
mount -t nfs4 172.16.5.252:/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 172.16.5.252:/crt /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/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
  • Последнее изменение: 29:09:2025 10:25