Support specifying a client certificate for mTLS auth #688
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Using a reverse-proxy with mTLS (client authentication) is a decent way to expose your self-hosted services on the internet.
This PR adds support for using a certificate that's installed in your Android device.
The changes are largely based on:
An optional client certificate can be selected when adding self-hosted accounts (FreshRSS and Reader).
The code uses the default system Keychain to pick a certificate, and only its alias (label) is saved, to be later used in the OkHttp SSL stack. Note that the OkHttp changes only affect client certificates, so the app should behave the same in regards to server certificates.
I considered letting the user select/change a certificate on
UpdateLoginViewModel
(which is shown when authentication fails during regular app usage, right?), but I don't think it is necessary.I'm comfortable with the logic changes, but I don't have experience with Compose, so my code there can be sub-optimal.