-
Notifications
You must be signed in to change notification settings - Fork 832
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
[PM-16157] Support self-host servers using TLS with Client Authentication (mTLS) #4486
base: main
Are you sure you want to change the base?
Conversation
Thank you for your contribution! We've added this to our internal Community PR board for review. |
👋🏾 Looking great, thanks for your contribution! We may only be able to action after the holiday season but have some preliminary questions:
|
67060f7
to
5cf6919
Compare
Hey @vvolkgang , thanks for the quick feedback! To your questions:
screen-20241218-193902.mp4Screen recording when no client certificate is installed. In this case Android displays nothing. To avoid confusing the user too much, I updated the description text. screen-20241218-194202.mp4
|
5cf6919
to
61b9170
Compare
🎟️ Tracking
#4416
📔 Objective
This PR adds a "Client certificate" menu to the custom environment menu. By clicking on a "Choose" button, the native certificate selection menu will open. User can choose a certificate that will be used for connections to a self-hosted instance.
Other apps implement some dynamic logic: if the sever requires mTLS, the user is prompted to select a certificate. While this behavior is more flexible for the user, it is more complicated to implement. With the chosen approach, the app settings must be cleared and a new server must be set up. As users generally do not enable/disable mTLS on a regular basis, I think the tradeoff is acceptable. Additionally the only information that is saved is the certificate name (key alias). If a user update/renew a certificate, as long as the certificate name does not change, the new certificate will be used and there is no need to reset the app. This issue could also be worked around by adding a certificate selection menu to the settings.
📸 Screenshots
Manual tests I did
Tested on Android 15 (Pixel 6) and Android 14 (Samsung Galaxy Note 20 Ultra 5G)
🦮 Reviewer guidelines