Подключение через webdav к OwnCloud

Posted by

Мне срочно потребовалось написать скрипт для резервного копирования моих репозитариев кода которые я стал последнее время вести с применением Mercurial. Сам сервис (ось: Ubuntu 18.04 Server amd64) Web+Mercurial у меня на моем железе HP MicroServer Gen8. А для единоличного доступа всех моих устройств и хранения наработок я использую на Ubuntu Trusty Server amd64 сервис OwnCloud (9.1.1). Он у меня уже несколько лет заменят Dropbox, Yandex-disk. И при составлении скрипта я столкнулся, что нужны действия, как через webdav произвести подключение к OwnCloud чтобы сбросить файлы резервного копирования создаваемые каждый день.

ekzorchik@srv-bionic:~$ hg clone --insecure https://172.33.33.40/hg/dproject

(172.33.33.40 → адрес текущей системы где содержаться репозитарии моего кода под различные проекты)

ekzorchik@srv-bionic:~$ sudo ./dproject/default

Устанавливаю на систему где у меня установлена связка Web+Mercurial пакет davfs2:

ekzorchik@srv-bionic:~$ sudo apt-get install davfs2 -y

Should unprivileged users be allowed to mount WebDAV resources? No

Создаю файл с логином и паролем на подключение к домашнему OwnCloud хранилищу:

(172.33.33.50 → мое OwnCloud хранилище в локальной сети)

ekzorchik@srv-bionic:~$ sudo nano /etc/davfs2/secrets

https://172.33.33.50/remote.php/webdav/tips_bhg<TAB>ekzorchik<TAB>712mbddr@

ekzorchik@srv-bionic:~$ sudo nano /etc/fstab

https://172.33.33.50/remote.php/webdav/tips_bhg<TAB>/media/tips_bhg<TAB>davfs<TAB>rw,user,auto 0 0

ekzorchik@srv-bionic:~$ sudo mount -a

/sbin/mount.davfs: the server certificate does not match the server name

/sbin/mount.davfs: the server certificate is not trusted

issuer: Internet Widgits Pty Ltd, Some-State, AU

subject: Internet Widgits Pty Ltd, Some-State, AU

identity: 172.33.33.50

fingerprint: 77:47:09:7d:88:62:36:0f:bd:a6:fc:8c:c4:8e:e6:3a:f8:fc:8b:4c

You only should accept this certificate, if you can

verify the fingerprint! The server might be faked

or there might be a man-in-the-middle-attack.

Accept certificate for this session? [y,N] Нажимаю клавишу y

/sbin/mount.davfs: warning: the server does not support locks

ekzorchik@srv-bionic:~$ sudo mkdir /media/tips_bhg/1

Повторяю действия, отключаю подключенный через webdav каталог:

ekzorchik@srv-bionic:~$ sudo umount /media/tips_bhg

/sbin/umount.davfs: waiting while mount.davfs (pid 812) synchronizes the cache .. OK

Запрашиваю монтирование удаленного каталога через webdav и снова запрос на подтверждение сертификата (он у меня самоподписанный)

ekzorchik@srv-bionic:~$ sudo mount -a

Accept certificate for this session? [y,N]

Задача: Как предопределить ответ «Да» на использование самоподписанного сертификата?

Можно с рабочего сервера где развернута роль owncloud скопировать сертификат:

ekzorchik@srv-owncloud:~$ cat /etc/apache2/sites-available/owncloud-ssl.conf | grep pem

SSLCertificateFile /etc/ssl/certs/owncloud.pem

ekzorchik@srv-owncloud:~$ scp /etc/ssl/certs/owncloud.pem ekzorchik@172.33.33.50:/home/ekzorchik

или подключившись к нему сохранить сертификат:

ekzorchik@srv-bionic:~$ openssl s_client -connect 172.33.33.50:443 -showcerts </dev/null 2>/dev/null | openssl x509 -outform PEM > certificate.pem

ekzorchik@srv-bionic:~$ sudo cp certificate.pem /etc/davfs2/certs/

ekzorchik@srv-bionic:~$ sudo nano /etc/davfs2/davfs2.conf

trust_server_cert<TAB>/etc/davfs2/certs/certificate.pem

ekzorchik@srv-bionic:~$ sudo mount -a

/sbin/mount.davfs: warning: the server does not support locks

ekzorchik@srv-bionic:~$ df -h | grep tips_bhg

https://172.33.33.50/remote.php/webdav/tips_bhg 16E 0 16E 0% /media/tips_bhg

Оба результата получения сертификата и прописывания его в конфигурационный файл davfs2 отрабатывают. Отлично, я разобрал, что меня интересовало. Работает. Теперь можно сделать скрипт резервного копирования репозитариев Mercurial на личный облачный сервис базируемый на OwnCloud системы Ubuntu Trusty Server amd64. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.