[Unit] Description=Certificate renewal After=network-online.target Documentation=https://smallstep.com/docs/step-ca/certificate-authority-server-production StartLimitIntervalSec=0 ; PartOf=cert-renewer.target [Service] Type=oneshot User=root ; ExecCondition checks if the certificate is ready for renewal, ; based on the exit status of the command. ; (In systemd <242, you can use ExecStartPre= here.) ExecCondition=/usr/bin/step certificate needs-renewal ${CERT_LOCATION} ; ExecStart renews the certificate, if ExecStartPre was successful. ExecStart=/usr/bin/step ca renew --force ${CERT_LOCATION} ${KEY_LOCATION} ; ExecStartPost=/usr/bin/openssl x509 -noout -enddate -in ${CERT_LOCATION} ; ExecStartPost=/usr/bin/docker exec caddy caddy reload --config /etc/caddy/Caddyfile [Install] WantedBy=multi-user.target