#!/bin/bash echo 'Before you can use this tool, please read it and remove this line and the one above. Doing so is accepting responsibility.'; exit 1; #!/usr/bin/env bash [ "" = "$1" ] && echo "Generates DKIM files for use with Email Essentials." && echo "Usage: $0 domain.tld dkim_selector passphrase" && echo "DNS record will be dkim_selector._domainkey.domain.tld" && exit 1 R_SELECTOR=$( echo $RANDOM | md5sum | head -c 16 ); R_PASSPHRASE=$( echo $RANDOM | md5sum | head -c 32 )$( echo $RANDOM | md5sum | head -c 32 ); DOMAIN_TLD=$1 SELECTOR=${2:-$R_SELECTOR} PASSPHRASE=${3:-$R_PASSPHRASE} [ ! -d $DOMAIN_TLD.wpes ] && mkdir $DOMAIN_TLD.wpes cd $DOMAIN_TLD.wpes echo "Generating private key for $DOMAIN_TLD [$DOMAIN_TLD.key]" openssl genrsa -aes256 -passout pass:$PASSPHRASE -out $DOMAIN_TLD.key 2048 echo "Generating public key for $DOMAIN_TLD [$DOMAIN_TLD.crt]" openssl rsa -in $DOMAIN_TLD.key -pubout -passin pass:$PASSPHRASE > $DOMAIN_TLD.crt echo "Writing password to file [$DOMAIN_TLD.pass]" echo "$PASSPHRASE" > $DOMAIN_TLD.pass echo "Writing selector to file [$DOMAIN_TLD.selector]" echo "$SELECTOR" > $DOMAIN_TLD.selector KEYCONTENT=$(cat $DOMAIN_TLD.crt | grep -v 'PUBLIC KEY' | tr --delete '\n') echo "Generating DNS record for $SELECTOR._domainkey.$DOMAIN_TLD. [$DOMAIN_TLD.dns-record.txt]" echo $SELECTOR'._domainkey.'$DOMAIN_TLD'. IN TXT "v=DKIM1; k=rsa; p='$KEYCONTENT'"' > $DOMAIN_TLD.dns-record.txt