-
Notifications
You must be signed in to change notification settings - Fork 3.1k
feat: SSL client certificate validation #2592
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
e520300
to
f3d1c9b
Compare
f3d1c9b
to
6443ee2
Compare
6443ee2
to
94fe047
Compare
94fe047
to
054a64e
Compare
@SchoNie I do 👍 |
054a64e
to
5ade728
Compare
5ade728
to
5e77e29
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incredible work @SchoNie , thanks 👍
The only suggestion I have other than the style one would be to maybe make it a bit clearer in the docs that global CRL can only work with global CA, and same thing for per-VIRTUAL_HOST
.
This PR adds support for the
ssl_client_certificate
,ssl_verify_client optional
andssl_crl
directives. It was requested and discussed multiple times over the years and I wanted to experiment with mTLS in my setup so I continued and combined the existing PR's enabling verification of client side certificates (mutual TLS) based on if a CA file exists.A Certificate Revocation List (CRL) can be used.
Optional ssl_verify_client can be activated by using the
com.github.nginx-proxy.nginx-proxy.ssl_verify_client: "optional"
label. This does not block access but instead stores the result in the $ssl_client_verify variable which gives user control which paths are controlled.Tests for all kind of mTLS scenarios. (10 year expiry cert)
Resolves #137, Resolves #278, Resolves #1027, Resolves #1046, Resolves #1197, Resolves #1584, Resolves #1644,
Discussed in: #2568
If you think this is something interesting to be merged I will add docs and write a wiki page how to generate all the client certificates. Please let me know.