Download a Certificate
Run:
sslmate download HOSTNAME
The following files will be downloaded to the configured certificate directory, overwriting existing files with the same names:
-
example.com.crt
- the certificate -
example.com.chain.crt
- the certificate chain (aka intermediate cert) -
example.com.chained.crt
- a concatenation of the certificate and the chain, for convenience
To download more than one certificate at once, specify multiple names on the command line to sslmate download
. Pass the --all
option in lieu of hostnames to download the certificate for every key in your key directory.
Normally, you do not need to run sslmate download
because sslmate buy
downloads these files automatically. Instead, sslmate download
is intended to be placed in a cron job or a configuration management script to ensure that your servers always have the most up-to-date copy of your certificates. Thus, your can set your certificates to automatically renew and the renewed certificates will automatically propagate to your servers.
Exit Status
sslmate download
exits with one of the following status codes:
- 0 - new certificate files were downloaded
- 10 - the current certificate files are up-to-date
- other - an error occurred
You can use this exit status in your script to determine whether to restart services that use the certificate.
Example Cron Job
The following script could be placed in a file in /etc/cron.daily
(make sure the script is executable):
#!/bin/sh
if sslmate download --all > /dev/null
then
service apache2 restart > /dev/null
fi
Every day, this script will attempt to download new certificates for every key in your key directory. If new certificates are downloaded, Apache will be restarted. For this to work, Apache must refer to the certificate files with their standard names in the SSLMate certificate directory (/etc/sslmate
by default).
To run sslmate download
from a cron job, you must have a /etc/sslmate.conf
configuration file containing your SSLMate API credentials. Note that sslmate
might not read your /root/.sslmate
file when run from cron, although you can force it to do so by adding export SSLMATE_CONFIG=/root/.sslmate
to the beginning of your script.