fix: re-register domainkeys when previously failed

This commit is contained in:
f 2024-06-22 19:46:30 -03:00
parent 25cc58890b
commit ac68f90e25
No known key found for this signature in database

View file

@ -36,17 +36,27 @@ case $1 in
dkey="$selc._domainkey.$SUTTY"
# Do nothing if it already exists
test -f "$pkey" && exit 0
if test ! -f "$pkey"; then
# Remove old keys later
prev="`find $dir -name "*.private" -o -name "*.txt"`"
# Remove old keys later
prev="`find $dir -name "*.private" -o -name "*.txt"`"
ok "Generating new keys for selector ${selc}"
opendkim-genkey --directory=$dir --selector=$selc --subdomains --domain=$SUTTY
ok "Generating new keys for selector ${selc}"
opendkim-genkey --directory=$dir --selector=$selc --subdomains --domain=$SUTTY
# Discard previous keys
echo "$dkey $SUTTY:$selc:$pkey" > $key
echo "$SUTTY $dkey" > $sig
# Discard previous keys
echo "$dkey $SUTTY:$selc:$pkey" > $key
echo "$SUTTY $dkey" > $sig
if test -n "$prev"; then
ok "Pruning old keypairs"
rm -f $prev
fi
if test -f $pid ; then
ok "Reloading"
cat $pid | xargs -r kill -USR1
fi
fi
txt="`cat $tkey | tr -d "\n" | cut -d '"' -f 2,4 | tr -d '"' | tr -d " "`"
@ -54,6 +64,10 @@ case $1 in
# continue anyway.
ok "Registering public key records"
for node in `drill -Q ns $SUTTY`; do
if drill -Q @${node} txt ${dkey} | grep -q "${txt}" ; then
ok "Records already registered for selector ${selc}"
continue
fi
# Craft record
cat >/tmp/dns <<DNS
@ -78,15 +92,5 @@ DNS
not_ok "Couldn't query ${dkey} at ${node}!"
fi
done
if test -n "$prev"; then
ok "Pruning old keypairs"
rm -f $prev
fi
if test -f $pid ; then
ok "Reloading"
cat $pid | xargs -r kill -USR1
fi
;;
esac