WKD einrichten
Einleitung
Ein Web Key Verzeichnis (Web Key Directory, WKD) ermöglicht es auf eine einfache Weise, den aktuell gültigen öffentlichen Schlüssel (Public Key) für eine bestimmte E-Mail Adresse über HTTPS bereitzustellen und abzurufen.
Es gibt die Möglichkeit, das WKD im Advanced- oder Direct-Methode einzurichten. Im Direct-Mode wird der Pfad .well-known direkt auf der Domain erwartet, im Advanced-Mode wird mit einer Subdomain openpgpkey gearbeitet. Da die Trennung von der Hauptanwendung der Domain im Advanced-Mode einfacher ist, und weil die Clients auch erst über den Advanced-Mode versuchen, die Schlüssel herunterzuladen, beschränken wir uns in dieser Anleitung auf den Advanced Mode.
Voraussetzungen
Es wird vorausgesetzt, dass bereits ein Schlüsselpaar (private/public) erzeugt wurde (z.B. mit gpg --full-generate-key
, oder mit Thunderbird, siehe unten in den Links).
Es muss eine Domain openpgpkey.<MeineDomain>.de im HSAdmin angelegt werden.
Der öffentliche Schlüssel muss in einer Textdatei im Domainbenutzer gespeichert sein. Diese Datei wird als Parameter für das Skript angeben.
Skript zur Einrichtung
Dieses Skript update_pgp_wkd.sh
(Link zum Gist siehe unten) erledigt alles, was man braucht:
#!/bin/bash
if [ -z $1 ]
then
echo "Bitte den Pfad für die Datei mit dem öffentlichen Key mitgeben: z.B. $0 ~/public.txt"
exit
fi
publickeyfile=$(realpath $1)
if [ ! -f $publickeyfile ]
then
echo "Kann den öffentlichen Schlüssel nicht finden: $publickeyfile"
exit
fi
DOMAIN=$(find ~/doms/openpgpkey.*/htdocs-ssl | head -n 1 | awk -F/ '{ print $8 }' | sed -e 's/openpgpkey.//g')
if [ -z $DOMAIN ]
then
echo "Zuerst muss die subdomain openpgpkey.$DOMAIN im HSAdmin eingerichtet werden!"
exit
fi
cd ~/doms/openpgpkey.$DOMAIN
cat > .htaccess <<FINISH
ForceType application/octet-stream;
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
FINISH
cd ~/doms/openpgpkey.$DOMAIN/htdocs-ssl/
rm -f .htaccess
mkdir -p .well-known/openpgpkey
cd .well-known
gpg --import < $publickeyfile
gpg --list-options show-only-fpr-mbox -k "@$DOMAIN" | /usr/lib/gnupg/gpg-wks-client --install-key
touch openpgpkey/$DOMAIN/policy
chmod a+x openpgpkey/$DOMAIN/
chmod a+x openpgpkey/$DOMAIN/hu/
touch openpgpkey/$DOMAIN/hu/index.html
Einrichtung bei Hostsharing
Man ruft das Skript mit dem Pfad zur Datei mit dem öffentlichen Schlüssel als Parameter auf. Es wird die erste Domain gesucht, die mit "openpgpkey." beginnt.
./update_pgp_wkd.sh ~/public.txt
Anschließend kann man das Ergebnis mit dem Dienst auf metacode.biz testen, siehe Link unten.
Links
- Offizielle Webseite
- Offizielle Anleitung
- Kuketz Blog: GnuPG: Web Key Directory (WKD) einrichten
- Thunderbird: PGP-Verschlüsselung für E-Mails einrichten
- Gist: update_pgp_wkd.sh
- Testen der eigenen Einrichtung