TLSA semi-automatisch im PowerDNS hinterlegen

June 28, 2017 - Aiko Barz   DNSSEC, HTTPS, Let's encrypt, TLSA

Einfaches Beispiel:

#!/bin/bash

ZONE="torrentkino.de"
FQHN="www.$ZONE"
PREFIX="\_443.\_tcp.www"
TYPE="TLSA"
METHOD="3 0 1"
TTL="86400"

HASH=$(echo | openssl s\_client -connect $FQHN:443 2>/dev/null | \
  sed -n '/-BEGIN/,/-END/p' | \
  openssl x509 -outform DER | \
  sha256sum | cut -d' ' -f1)

echo "sudo pdnsutil replace-rrset $ZONE $PREFIX $TYPE $TTL \\"$METHOD $HASH\\""
echo "sudo pdnsutil rectify-zone $ZONE"
echo "sudo pdnsutil increase-serial $ZONE"

Der Let’s encrypt Certbot beherrscht zudem Hooks, die beim Austausch eines Webserver-Zertifikats getriggert werden. Damit kann man das Spiel beliebig weiter spielen. Wer es noch komplizierter mag, kann auch mit der HTTP-API des PowerDNS-Servers sprechen. Das lässt sich sehr schön mit Perl, Go oder Foo realisieren.