diff --git a/readme-vars.yml b/readme-vars.yml index e3bafe0..2a53d71 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -30,6 +30,8 @@ param_env_vars: opt_param_usage_include_env: true opt_param_env_vars: - { env_var: "FERNETKEY", env_value: "", desc: "Optionally define a custom fernet key, has to be base64-encoded 32-byte (only needed if container is frequently recreated, or if using multi-node setups, invalidating previous authentications)" } + - { env_var: "CERTFILE", env_value: "", desc: "Point this to a certificate file to enable HTTP over SSL (HTTPS) for the ldap auth daemon" } + - { env_var: "KEYFILE", env_value: "", desc: "Point this to the private key file, matching the certificate file referred to in CERTFILE" } # application setup block app_setup_block_enabled: true @@ -41,6 +43,7 @@ app_setup_block: | # changelog changelogs: + - { date: "27.07.20:", desc: "Add support for HTTP over SSL (HTTPS)." } - { date: "21.07.20:", desc: "Add support for optional user defined fernet key." } - { date: "02.06.20:", desc: "Rebasing to alpine 3.12, serve login page at `/ldaplogin` as well as `/login`, to prevent clashes with reverese proxied apps." } - { date: "17.05.20:", desc: "Add support for self-signed CA certs." } diff --git a/root/app/nginx-ldap-auth-daemon.py b/root/app/nginx-ldap-auth-daemon.py index 3066928..dab9817 100644 --- a/root/app/nginx-ldap-auth-daemon.py +++ b/root/app/nginx-ldap-auth-daemon.py @@ -302,6 +302,9 @@ if __name__ == '__main__': group.add_argument('-s', '--starttls', metavar="starttls", default="false", help=("Establish a STARTTLS protected session (Default: false)")) + group.add_argument('--disable-referrals', metavar="disable_referrals", + default="false", + help=("Sets ldap.OPT_REFERRALS to zero (Default: false)")) group.add_argument('-b', metavar="baseDn", dest="basedn", default='', help="LDAP base dn (Default: unset)") group.add_argument('-D', metavar="bindDn", dest="binddn", default='', @@ -333,6 +336,10 @@ if __name__ == '__main__': } LDAPAuthHandler.set_params(auth_params) server = AuthHTTPServer(Listen, LDAPAuthHandler) + if os.path.isfile(os.environ.get("CERTFILE")) and os.path.isfile(os.environ.get("KEYFILE")): + import ssl + server.socket = ssl.wrap_socket (server.socket, certfile=os.environ.get("CERTFILE"), keyfile=os.environ.get("KEYFILE"), server_side=True) + sys.stdout.write("SSL enabled using certificate file %s and key file %s\n" % (os.environ.get("CERTFILE"), os.environ.get("KEYFILE"))) signal.signal(signal.SIGINT, exit_handler) signal.signal(signal.SIGTERM, exit_handler)