WebDAVのインストール方法について記載します。
Table of Contents
1 WebDAVをインストールする
- この記事ではhttpsの為にデフォルトのSSL/TLS証明書を使っています。別にSSL/TLS証明書を用意している場合はそちらをお使いください。
- SSLを利用するのでhttpsやdavsで接続してください。
- Digest認証を使用します。ユーザ名はWEBDAV_USERNAMEの値で、パスワードはWEBDAV_PASSWORDの値です。
#!/bin/sh set -e [ -z "${WEBDAV_USERNAME}" ] && \ WEBDAV_USERNAME=webdav [ -z "${WEBDAV_PASSWORD}" ] && \ WEBDAV_PASSWORD=webdav sudo zypper -n in apache2 sudo gensslcert cat <<EOF | sudo tee /etc/apache2/conf.d/webdav.conf Alias /webdav /srv/www/webdav DAVLockDB /var/lib/webdav/DAVLock <VirtualHost _default_:443> SSLEngine on SSLCertificateFile /etc/apache2/ssl.crt/server.crt SSLCertificateKeyFile /etc/apache2/ssl.key/server.key </VirtualHost> <Location /webdav> DAV On SSLRequireSSL AuthType Digest AuthName webdav AuthUserFile /etc/apache2/.webdav Require valid-user </Location> EOF sudo mkdir /srv/www/webdav sudo chown wwwrun:www /srv/www/webdav sudo mkdir /var/lib/webdav sudo chown wwwrun:www /var/lib/webdav for t in FW_CONFIGURATIONS_EXT FW_CONFIGURATIONS_DMZ FW_CONFIGURATIONS_INT; do sudo sed -e "s/^${t}=\"\(.*\)\"/${t}=\"\1 apache2-ssl\"/g" \ -i /etc/sysconfig/SuSEfirewall2 done sudo systemctl restart SuSEfirewall2 sudo a2enflag SSL for mod in ssl dav dav_fs auth_digest; do sudo a2enmod ${mod} done sudo systemctl enable apache2 sudo systemctl restart apache2 # Create digest password file with expect command. sudo zypper -n in expect expect -c " set timeout -1 spawn sudo htdigest -c /etc/apache2/.webdav webdav ${WEBDAV_USERNAME} expect \"New password: \" send \"${WEBDAV_PASSWORD}\n\" expect \"Re-type new password: \" send \"${WEBDAV_PASSWORD}\n\" expect eof "
2 WebDAVへアクセスする
davfsのマウントを可能にするdavfs2パッケージをインストールします。
> O=http://download.opensuse.org > A=${O}/repositories/filesystems/openSUSE_Leap_42.2/ > sudo zypper ar -f -n filesystems ${A} filesystems > sudo zypper -n --gpg-auto-import-keys ref > sudo zypper -n in davfs2
mount -t davfsでマウントします。証明書を組み込んでいないので警告がでます。
> sudo mount -t davfs https://localhost/webdav /mnt Please enter the username to authenticate with server https://localhost/webdav or hit enter for none. Username: webdav Please enter the password to authenticate user webdav with server https://localhost/webdav or hit enter for none. Password: /sbin/mount.davfs: the server certificate does not match the server name /sbin/mount.davfs: the server certificate is not trusted issuer: CA, SUSE Linux Web Server, unknown, unknown, XY subject: web server, SUSE Linux Web Server, unknown, unknown, XY identity: opensuse-14.hiroom2.com fingerprint: cc:46:1a:43:3b:b2:ec:55:37:81:83:b6:61:54:91:46:23:67:e8:2f 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
/mnt/hello.txtを書き込みます。
> echo hello | sudo tee /mnt/hello.txt
即座にファイルを反映させる為にアンマウントします。
> sudo umount /mnt
WebDAVのディレクトリにファイルが反映されています。
> sudo cat /var/www/webdav/hello.txt hello