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.
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:
Zertifikate lauten jetzt anders, bitte nachfolgenden Text ändern 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.
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…)
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.
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
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/>
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