Add certificate watcher for external certs to reload nginx

In case of TLS_FLAVOR=[mail,cert], the user supplies their own certificates.
However, since nginx is not aware of changes to these files, it cannot
reload itself e.g. when the certs get renewed.

To solve this, let’s add a small daemon in the place of
`letsencrypt.py`, which uses a flexible file-watching framework and
reloads nginx in the case the certificates change ….
This commit is contained in:
Dario Ernst
2018-12-06 16:48:26 +01:00
committed by root
parent c25c646909
commit 1aa97c9914
3 changed files with 66 additions and 1 deletions

View File

@@ -9,6 +9,8 @@ if os.path.exists("/var/run/nginx.pid"):
if os.environ["TLS_FLAVOR"] in [ "letsencrypt","mail-letsencrypt" ]:
subprocess.Popen(["/letsencrypt.py"])
elif os.environ["TLS_FLAVOR"] in [ "mail", "cert" ]:
subprocess.Popen(["/certwatcher.py"])
subprocess.call(["/config.py"])
os.execv("/usr/sbin/nginx", ["nginx", "-g", "daemon off;"])