diff --git a/bin/dumpcerts b/bin/dumpcerts index c14d1f4..1c8e946 100755 --- a/bin/dumpcerts +++ b/bin/dumpcerts @@ -13,15 +13,28 @@ fail() { . /etc/federated -echo -ne "\n* Dumping certs from traefik into /federated/certs.." +echo -ne "\n* Dumping certs from traefik into /federated/certs.new.." +traefik-certs-dumper file --version v2 --source /federated/apps/traefik/data/letsencrypt/acme.json --dest /federated/certs.new &> /dev/null +[ $? -ne 0 ] && fail "Couldn't dump certs from traefik-certs-dumper into certs.new" +echo -ne "done." -traefik-certs-dumper file --version v2 --source /federated/apps/traefik/data/letsencrypt/acme.json --dest /federated/certs &> /dev/null -[ $? -ne 0 ] && fail "Couldn't dump certs from traefik-certs-dumper" +diff /federated/certs.new/certs/$DOMAIN.crt /federated/certs/certs/$DOMAIN.crt &> /dev/null +if [ $? -eq 0 ]; then + echo -ne "\n* The certificates are the same (we are not restarting services)." +else + echo -ne "\n* The certificates are NOT the same (we will restart services)." + MATCH="no" +fi -echo -ne "done.\n" - -echo -ne "* Installing certs into /federated/apps that use it.." +echo -ne "\n* Moving certs from /federated/certs.new into /federated/certs.." +cp /federated/certs.new/certs/$DOMAIN.crt /federated/certs/certs/$DOMAIN.crt +[ $? -ne 0 ] && fail "Couldn't move /federated/certs.new to /federated/certs" +cp /federated/certs.new/private/$DOMAIN.key /federated/certs/private/$DOMAIN.key +[ $? -ne 0 ] && fail "Couldn't move /federated/certs.new to /federated/certs" +rm -rf /federated/certs.new +echo -ne "done." +echo -ne "\n* Installing certs into /federated/apps that use it.." # Install into PostgreSQL container cp /federated/certs/certs/$DOMAIN.crt /federated/apps/postgresql/data/var/lib/postgresql/server.crt cp /federated/certs/private/$DOMAIN.key /federated/apps/postgresql/data/var/lib/postgresql/server.key @@ -41,5 +54,19 @@ cp /federated/certs/certs/$DOMAIN.crt /federated/certs/private/$DOMAIN.key /fede # Install into Matrix container cp /federated/certs/certs/$DOMAIN.crt /federated/certs/private/$DOMAIN.key /federated/apps/matrix/data/matrix/ chmod 644 /federated/apps/matrix/data/matrix/$DOMAIN.crt /federated/apps/matrix/data/matrix/$DOMAIN.key +echo -ne "done.\n" -echo -ne "done.\n\n" +if [ "$MATCH" = "no" ]; then + echo "\n* Restarting services that use the certificate.." + /federated/bin/stop postgresql + /federated/bin/stop ldap + /federated/bin/stop mail + /federated/bin/stop matrix + /federated/bin/start postgresql + /federated/bin/start ldap + /federated/bin/start mail + /federated/bin/start matrix + echo -ne "done.\n" +fi + +echo -ne "\n\n"