This commit is contained in:
2026-05-07 10:40:26 +02:00
parent 6b076b9585
commit bf62af7438
4 changed files with 223 additions and 1 deletions

View File

@@ -0,0 +1,69 @@
#!/usr/bin/env bash
set -Eeuo pipefail
# Prosess 3:
# Skriver ut DNS TXT-recordene som skal legges inn i Domeneshop.
#
# Leser:
# private/dkim/<domene>.<selector>.public.pem
#
# Skriver:
# private/dkim-domeneshop-records.txt
#
# Dette scriptet printer bare PUBLIC key. Det er ikke privatnøkkelen.
# Likevel lagres output under private/ for å holde repoet ryddig.
selector="${DKIM_SELECTOR:-mail}"
output_file="private/dkim-domeneshop-records.txt"
mapfile -t public_keys < <(
find private/dkim -maxdepth 1 -type f -name "*.${selector}.public.pem" | sort
)
if [[ ${#public_keys[@]} -eq 0 ]]; then
echo "FEIL: Fant ingen offentlige DKIM-nøkler."
echo "Forventet filer som:"
echo " private/dkim/<domene>.${selector}.public.pem"
exit 1
fi
{
for public_key in "${public_keys[@]}"; do
filename="$(basename "$public_key")"
domain="${filename%.${selector}.public.pem}"
pubkey="$(grep -v -- '-----' "$public_key" | tr -d '\n\r ')"
if [[ -z "$pubkey" ]]; then
echo "FEIL: Public key ble tom for ${domain}" >&2
exit 1
fi
echo "============================================================"
echo "DKIM for ${domain}"
echo "============================================================"
echo
echo "I Domeneshop:"
echo
echo "Vertsnavn / hostname:"
echo "${selector}._domainkey"
echo
echo "Type:"
echo "TXT"
echo
echo "Verdi / parameter:"
echo "v=DKIM1; k=rsa; p=${pubkey}"
echo
echo "Fullt DNS-navn:"
echo "${selector}._domainkey.${domain}"
echo
echo "Test etter lagring:"
echo "dig TXT ${selector}._domainkey.${domain} +short"
echo
done
} | tee "$output_file"
chmod 600 "$output_file"
echo
echo "Kopi lagret her:"
echo " $output_file"