Client certificate support#5563
Conversation
|
@jc21 looks like the Develop branch is breaking the CI. Let me know when it's fixed so I can rebase and update the PR. |
4b59ea0 to
06ae23e
Compare
|
@jc21 looks like there is something wrong with the SQLite test on the CI |
|
@jc21 PR rebased. |
|
CI is showing errors across multiple integration tests: In testing, In addition to that, the Swagger schema is failing linting: |
|
Awesome @jc21, for some reason I didn't see those errors on CI, only the SQLite one. I'll check, fix those, and report back. Thanks for the feedback. |
|
Docker Image for build 5 is available on DockerHub: Note Ensure you backup your NPM instance before testing this image! Especially if there are database changes. Warning Changes and additions to DNS Providers require verification by at least 2 members of the community! |
|
@jc21 updated and fixed the issues 😃 |
|
This is going to need significant testing for all combinations of access lists options. |
Based on PR #2956, with Rebased code and tested.
--
Original PR:
This PR adds client-certificate support to nginx-proxy-manager. Closes #768. Relates to #622.
A new SSL certificate is defined - "client certificate authority" - which allows uploading client CA certificates. These can then be assigned to Access Lists via the UI or API, and finally the Access List assigned to a host, which will thus enable Client Certificate Authorization for mutual TLS connections to the host.
This includes a slight revamp of the access-list system to implement client IP checks as geo directives. This allows the "Drop Unauthorized" function to simply not respond to clients from the wrong IP address, as well as allowing "Satisfy All" and "Satisfy Any" to include Client CA functionality - namely, using Satisfy Any is it possible to selectively require client certificates from some networks but not others (in my household the primary use-case of this is for Home Assistant to require certificates from the internet but not the local network).