#!/bin/sh # # create Domainkey # # Author: Joerg Backschues # if [ "$1" = "" ] ; then echo "Usage: $0 [-p] domain [selector]"; echo " Create domainkey"; echo " Print domainkey with -p"; echo; exit 1; fi CONFIGDIR="/etc/domainkeys" case "$1" in "-p") # # print domainkey # SELECTOR=$3 if [ "$SELECTOR" = "" ] ; then SELECTOR="default" fi test -f $CONFIGDIR/$2/rsa.public_$SELECTOR || { echo; echo "Domainkey for domain \"$2\" with selector \"$SELECTOR\" does not exist."; echo; exit 1;} # ._domainkey.. IN TXT "" echo -e "\nTXT record for BIND:" echo -n "$SELECTOR._domainkey.$2. IN TXT " echo "\"v=DKIM1; k=rsa; t=y; p=`grep -v -e "^-" $CONFIGDIR/$2/rsa.public_$SELECTOR | tr -d "\n"`\"" echo exit 0 ;; *) # # create domainkey # SELECTOR=$2 if [ "$SELECTOR" = "" ] ; then SELECTOR="default" fi test -f $CONFIGDIR/$1/rsa.private_$SELECTOR && { echo; echo "Domainkey for domain \"$1\" with selector \"$SELECTOR\" already exists."; echo; exit 1;} mkdir -p $CONFIGDIR/$1 echo $SELECTOR > $CONFIGDIR/$1/selector openssl genrsa -out $CONFIGDIR/$1/rsa.private_$SELECTOR 1024 openssl rsa -in $CONFIGDIR/$1/rsa.private_$SELECTOR -out $CONFIGDIR/$1/rsa.public_$SELECTOR -pubout -outform PEM ln -sf $CONFIGDIR/$1/rsa.private_$SELECTOR $CONFIGDIR/$1/default chmod 0700 $CONFIGDIR chmod 0700 $CONFIGDIR/$1 chmod 0600 $CONFIGDIR/$1/* chown -R qmailr:qmail $CONFIGDIR # ._domainkey.. IN TXT "" echo -e "\nTXT record for BIND:" echo -n "$SELECTOR._domainkey.$1. IN TXT " echo "\"v=DKIM1\\; k=rsa\\; t=y\\; p=`grep -v -e "^-" $CONFIGDIR/$1/rsa.public_$SELECTOR | tr -d "\n"`\"" echo exit 0 ;; esac