WKD einrichten: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
Zeile 24: Zeile 24:
     exit
     exit
fi
fi
publickeyfile=$1
publickeyfile=$(realpath $1)


if [ ! -f $publickeyfile ]
if [ ! -f $publickeyfile ]

Version vom 19. November 2021, 16:55 Uhr

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 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