Windows und Linux

Unter Windows wird Cygwin installiert, in der Gruppe „Net“ muss „cadaver“ extra angewählt werden. Das bin-Verzeichnis von Cygwin muss in die Umgebungsvariable PATH aufgenommen werden.

Unter Linux kann cadaver meist über die systemeigene Paketverwaltung installiert werden.

Ist kein vorgefertigtes Paket für Linux verfügbar, können die Quellen von http://www.webdav.org/cadaver bezogen werden. Nach dem Auspacken sollte die Installation mit

./configure --sysconfdir=/etc --localstatedir=/var --with-ssl=openssl
make
make install

erfolgen.

SSL-Zertifikate

Für SSL-Verbindungen prüft cadaver die Zertifikatskette und „nervt“ mit einer Abfrage, wenn ein Zertifikat nicht verifiziert werden kann. Um Uploads vollautomatisch vorzunehmen ohne diese Abfrage müssen die drei SSL-Zertifikate telekom.crt, dfn.crt und cacert.crt von der Webseite der DFN-PKI installiert werden:

FIXME Zertifikate lauten jetzt anders, bitte nachfolgenden Text ändern FIXME bitte prüfen, ob die Zertifikatskette ausreicht: https://pki.pca.dfn.de/fh-schmalkalden-ca/pub/cacert/chain.txt

Im Beispiel gehen wir davon aus, dass diese schon heruntergeladen und im Verzeichnis c:\temp abgespeichert wurden.

Die nachfolgenden Befehle müssen in einer Eingabeaufforderung ausgeführt werden, die als Administrator ausgeführt wird:

cd \cygwin\usr\ssl\certs
xcopy c:\temp\telekom.crt .
xcopy c:\temp\dfn.crt .
xcopy c:\temp\cacert.crt .
xcopy telekom.crt 812e17de.0
xcopy dfn.crt 6107e209.0
xcopy cacert.crt 74f0e817.0

Linux-Nutzer kopieren die Dateien analog nach /etc/pki/tls/certs:

cd /etc/pki/tls/certs
cp /home/erwin/Downloads/telekom.crt .
cp /home/erwin/Downloads/dfn.crt .
cp /home/erwin/Downloads/cacert.crt .
ln telekom.crt 812e17de.0
ln dfn.crt 6107e209.0
ln cacert.crt 74f0e817.0

Die Zahlen in den Dateinamen mit der 0 am Ende sind Hashes und wurden mit

openssl x509 -subject_hash -noout -in telekom.crt
openssl x509 -subject_hash -noout -in dfn.crt
openssl x509 -subject_hash -noout -in cacert.crt

ermittelt, das abschließende „.0“ darf nicht vergessen werden. Diese Hashes müssen neu erzeugt und verlinkt werden, wenn neue Versionen der Zertifikate benutzt werden, beispielsweise weil eines der Zertifikate abläuft.

Verwendung

Mit

cadaver

wird das Programm gestartet, die Nutzung ist vergleichbar mit ftp-Clients und smbclient (u.a. gibt es Befehle open, cd, put, get, close…)

Nutzername und Passwort

In der Datei .netrc im Cygwin-Homeverzeichnis (z.B. c:\cygwin\home\erwin) können für bestimmte Hosts Nutzernamen und Passwort gespeichert werden, z.B.:

machine cms.fh-schmalkalden.de
login erwin
password geheim

Damit wird nicht mehr nach Nutzernamen gefragt, wenn mit open eine Verbindung zum Server hergestellt wird.

Hinweis: Diese Datei muss gegen unberechtigten Zugriff gesichert werden, andere Benutzer sollten keinen Zugriff auf diese Datei haben.

Kommandos automatisieren

Mit der Option –rcfile=Datei kann eine Datei mit Kommandos angegeben werden, die von cadaver ausgeführt wird.

Beispiel für eine solche *.cmd-Datei (bei mir d:\krause\bat\cadaver-anl-it.cmd):

PATH C:\cygwin\usr\bin;C:\cygwin\bin;%PATH%
d:
cd \fhs\labor\anleitung\gos
cadaver --rcfile=/cygdrive/d/krause/bat/cadaver-anl-it.rc

Die *.rc-Datei enthält dann die cadaver-Kommandos (z.B. d:\krause\bat\cadaver-anl-it.cmd):

open https://cms.fh-schmalkalden.de/bin/webdav/index.php?/
cd schmalkalden
cd Multimedia
cd Downloads
cd elektrotechnik
cd l
cd edv
put gos.pdf
close
quit

WebDAV mit MacOS und cadaver

Macports (http://www.macports.org) installieren und mit diesem Kommando cadaver nachrüsten:

sudo port install cadaver

dann cadaver starten und webdav-url öffnen:

Mein-iMac: hans$ cadaver
dav:!> open https://dms.xyz.de/webdav/
WARNING: Untrusted server certificate presented for `dms.xyz.de':
Issued to: My Organization, DE
Issued by: Staff, My Organization, DE
Certificate is valid from Tue, 10 Jan 2012 10:12:13 GMT to Sun, 08 Jan 2017 10:12:13 GMT
Do you wish to accept the certificate? (y/n) y
Authentication required for x on server `dms.xyz.de':
Username: hans
Password: 
dav:/public/> 
Zertifikate installieren

im Prinzip wie oben, relevant ist der Pfad zur verwendeten openssl-Version, bei SnowLeopard mit Macports ist das /opt/local/etc/openssl:

cd /opt/local/etc/openssl/
sudo mkdir certs
cd certs
sudo curl -O http://rz.fh-schmalkalden.de/telekom.crt
sudo curl -O http://rz.fh-schmalkalden.de/cacert.crt
sudo curl -O http://rz.fh-schmalkalden.de/dfn.crt
sudo ln -sf dfn.crt 6107e209.0
sudo ln -sf telekom.crt 812e17de.0
sudo ln -sf cacert.crt 74f0e817.0

symbolische Links sind etwas schöner, dann sieht man auf welche Datei der Hash zeigt.

die Hashes werden wie oben beschrieben erzeugt, aber ACHTUNG, die OnBoard-Version von openssl zeigt andere Werte für die Hashes an, deshalb die von cadaver verwendete Version nutzen:

/opt/local/bin/openssl x509 -subject_hash -noout -in telekom.crt
812e17de