OpenPGP Web Key Directory (WKD, advanced method) - publieke PGP-sleutels als route-B nginx-image op de derden-box
|
All checks were successful
build-and-push / build (push) Successful in 5s
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| keys/2487.eu | ||
| build-wkd.sh | ||
| Dockerfile | ||
| nginx.conf | ||
| README.md | ||
wkd — OpenPGP Web Key Directory (publieke PGP-sleutels, advanced method)
Mailclients (GnuPG, Thunderbird, Mailvelope, Proton-lookup, …) vinden hiermee automatisch de publieke
PGP-sleutel bij een mailadres. Route-B image-app op de derden-box; per domein een subdomein
openpgpkey.<domein> → https://openpgpkey.<domein>/.well-known/openpgpkey/<domein>/hu/<hash>?l=<local-part>.
push naar main → Forgejo Actions (act_runner docgen): stage 1 bouwt met gpg-wks-client de hu/-boom
uit keys/<domein>/<adres>.asc, stage 2 = nginx die 'm serveert
→ push naar git.doc-gen.eu/wsfcqyxbu1/wkd:latest
→ host-watcher (docgen, |remote-entry) ziet de nieuwe digest → Coolify deployt op de derden-box
- Alles staat in git (publieke sleutels zijn geen geheim); geen volumes, geen env, geen back-up nodig.
- Alleen publieke sleutels. De build faalt op een
PRIVATE KEY BLOCK, op een bestandsnaam die niet bij de domeinmap hoort, en op een sleutel zonder UID met exact dat adres. - Hash-regel (spec, draft-koch-openpgp-webkey-service):
hu/<z-base-32(SHA-1(local-part in lowercase))>; wij rekenen 'm nooit zelf uit —gpg-wks-client --install-keydoet dat, en exporteert alléén de UID van dat adres (andere UIDs moeten eruit). Controle:gpg-wks-client --print-wkd-hash <adres>. - Sleutel toevoegen/vernieuwen:
keys/<domein>/<adres>.asc(=gpg --export --armor <adres>) → commit + push. Nieuw domein = nieuwe mapkeys/<domein>/+ DNSopenpgpkey.<domein>+ domein op de Coolify-app. - Headers:
Content-Type: application/octet-stream,Access-Control-Allow-Origin: *;policyis leeg (verplicht bestand). Toegangslog staat uit (geen sporen van wie welk adres opvraagt). - Versie:
FROM alpine:<tag>(build) +FROM nginx:<tag>-alpine(runtime) in deDockerfile.
Beheer/runbook: infra-repo wSFcQyxBu1/infra, runbooks/wkd-pgp-sleutels.md; issue infra#88.