Skip to content
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

More fields in SslDigest #421

Open
pfzetto opened this issue Oct 11, 2024 · 0 comments
Open

More fields in SslDigest #421

pfzetto opened this issue Oct 11, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@pfzetto
Copy link

pfzetto commented Oct 11, 2024

Problem

Pingora supports client certificates (using OpenSSL).
One might want to use them to authenticate a request.
Currently it is possible to access some information about the client certificate using SslDigest in the ProxyHttp functions (e.g. request_filter).
Sadly it is missing crucial information (e.g. subject name, subject alt names, issuer name,issuer alt names, ...) about the certificate to use it for authentication.

Solution

If I didn't miss a way to access the X509 directly, I think that a field for the x509 certificate in the SslDigest would provide the easiest and least restrictive solution.

Impact of Solution

I don't know where SslDigest is used / cloned elsewhere, so I can't reason about the performance impact of the proposed solution.

Context

I'm currently building an experimental proxy that implements mTLS for a software (the Proxmox VE web interface) that doesn't support mTLS authentication.
The proxy authenticates the user using the client certificates.
On successful authentication it establishes a session with the web interface using the username and password for the user and injects the session ticket in all requests.

@drcaramelsyrup drcaramelsyrup added the enhancement New feature or request label Oct 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants