Это старая версия документа!
Копирование сертификатов с 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.
Источник
NPM
Создать каталог в домашней директории пользователя root
mkdir ~/scripts
Содать файл в каталоге scripts
touch ~/script/copy_certs.sh
Скопировать и вставить
- 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
Скопировать и вставить
- 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