Compare commits
No commits in common. "793c9f7644c0f5a19242a65ac6027a32d9f79c90" and "25cc58890b8fea7a49f59c957027b3fbec0d658f" have entirely different histories.
793c9f7644
...
25cc58890b
1 changed files with 18 additions and 23 deletions
29
opendkimd.sh
29
opendkimd.sh
|
@ -36,39 +36,24 @@ case $1 in
|
||||||
dkey="$selc._domainkey.$SUTTY"
|
dkey="$selc._domainkey.$SUTTY"
|
||||||
|
|
||||||
# Do nothing if it already exists
|
# Do nothing if it already exists
|
||||||
if test ! -f "$pkey"; then
|
test -f "$pkey" && exit 0
|
||||||
|
|
||||||
# Remove old keys later
|
# Remove old keys later
|
||||||
prev="`find $dir -name "*.private" -o -name "*.txt"`"
|
prev="`find $dir -name "*.private" -o -name "*.txt"`"
|
||||||
|
|
||||||
ok "Generating new keys for selector ${selc}"
|
ok "Generating new keys for selector ${selc}"
|
||||||
opendkim-genkey --directory=$dir --selector=$selc --subdomains --domain=$SUTTY
|
opendkim-genkey --directory=$dir --selector=$selc --subdomains --domain=$SUTTY
|
||||||
chown -R opendkim:opendkim /etc/opendkim
|
|
||||||
|
|
||||||
# Discard previous keys
|
# Discard previous keys
|
||||||
echo "$dkey $SUTTY:$selc:$pkey" > $key
|
echo "$dkey $SUTTY:$selc:$pkey" > $key
|
||||||
echo "$SUTTY $dkey" > $sig
|
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 " "`"
|
txt="`cat $tkey | tr -d "\n" | cut -d '"' -f 2,4 | tr -d '"' | tr -d " "`"
|
||||||
|
|
||||||
# Register the TXT record on every nameserver. Log failures but
|
# Register the TXT record on every nameserver. Log failures but
|
||||||
# continue anyway.
|
# continue anyway.
|
||||||
ok "Registering public key records"
|
ok "Registering public key records"
|
||||||
for node in `drill -Q ns $SUTTY`; do
|
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
|
# Craft record
|
||||||
cat >/tmp/dns <<DNS
|
cat >/tmp/dns <<DNS
|
||||||
|
@ -93,5 +78,15 @@ DNS
|
||||||
not_ok "Couldn't query ${dkey} at ${node}!"
|
not_ok "Couldn't query ${dkey} at ${node}!"
|
||||||
fi
|
fi
|
||||||
done
|
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
|
esac
|
||||||
|
|
Loading…
Reference in a new issue