Skip to content

Fixing certificate errors with cron

Jamen edited this page Nov 3, 2020 · 14 revisions

If you're seeing the error

TokenStore::Refresh: http error: error setting certificate verify locations: ...

Make a small bash script, I named mine fix_certs.sh

#!/bin/bash
mkdir -p /var/spool/postfix/etc/ssl/certs
cp /etc/ssl/certs/ca-certificates.crt /var/spool/postfix/etc/ssl/certs/ca-certificates.crt

# and if you're using postmulti add multiple instances.
mkdir -p /var/spool/postfix-2/etc/ssl/certs
cp /etc/ssl/certs/ca-certificates.crt /var/spool/postfix-2/etc/ssl/certs/ca-certificates.crt

Make the script executable with chmod +x

$ sudo chmod +x fix_certs.sh

Run it as often as you'd like with cron.

If you have multiple instances of postmulti, try a more dynamic script

#!/bin/bash
# assuming all of the instances start with "postf" e.g. "postfix-2"

mapfile -t instance_array < <( find /etc* -maxdepth 1 -type d -name "postf*" -printf "%f\n" )
for instance in "${instance_array[@]}"
do
   echo "processing cert files for ${instance}"
   mkdir -p "/var/spool/${instance}/etc/ssl/certs"
   cp /etc/ssl/certs/ca-certificates.crt "/var/spool/${instance}/etc/ssl/certs/ca-certificates.crt"
done
Clone this wiki locally