DKIMRotator 1.2 (2023-03-17) St. Paddy’s Edition!

The DKIM Rotator script will rotate all generated DKIM keys in a given key directory using the date as the selector. Only the Year and Month fields (YYYYMM) will be leveraged for the selector. This script can easily be modified if you wanted to add an additional serial number at the end. You can also exclude domains from the list that you do not want to rotate.


In order for this script to successfully run, there are a few prereqs and assumptions to consider:

  • The awk binary must be in the path of the script. There is a goofy reason for this, but the rest of the binaries are declared up front.
  • You have already installed opendkim and it’s working swimmingly. You define your working directory where your keys and key table files are. Right now its set as /etc/dkimkeys.
  • All keys that will be rotated are defined in your key table. Technically you don’t need to have pre-existing keys, but it may bark an error on you when it tries to move the old key out of the way.
  • You are good with 2048-bit RSA keys and SHA256 for hashing (those are hard coded right now).
  • Integrated with GoDaddy’s API to auto add the new TXT records to each domain.

Setting up DKIM

Getting DKIM going on your server is outside the scope of this document, but you can refer to this guide for a Debian/Postfix/DKIM setup. One quick note, there is still a mistake in this guide document. When generating keys, the proper -h flag is sha256, NOT rsa-sha256. You can also check out Debian’s OpenDKIM guide.

The End

I’ve got everything up on GitHub. Download the code and open issues here.

While the files are definitely complete and ready for installation, these instructions may not be. If you run into problems, email me and I’ll see if I can assist!