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

How to get waterfly-III to use mtls certificates? #472

Open
anuneo opened this issue Nov 3, 2024 · 2 comments
Open

How to get waterfly-III to use mtls certificates? #472

anuneo opened this issue Nov 3, 2024 · 2 comments
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request

Comments

@anuneo
Copy link

anuneo commented Nov 3, 2024

I love you waterfly-III. Thanks for all your efforts.

My firefly-iii instance is accessible via a cloudflare tunnel. I have used mtls certificates to restrict access to the applications behind the tunnels. It has worked well for other applications so far. I would like to do the same for firefly-iii. While this works perfectly when I try to access firefly via a browser, I can't get it work with waterfly-III. When I open waterfly, there is no prompt to select a certificate. How can this be enabled?

Thank you!

@dreautall
Copy link
Owner

Hi, thank you for the kind words! And sorry for the bad news below 🥲

I switched to cronet_http as the HTTP implementation, basically: Android native Chrom(e/ium). As such, the app only allows security stuff the OS can handle. Custom Certificates need to be in the Android Cert Store etc. The reason for the switch was broader compatibility (for example for people using the Android cert store stuff, Proxies etc.) and no "hand-made crypto" in my app. However, as far as I understand, this does not support Client Certificates at all (nor does it allow a blanket "allow all bad server certificates" option).

There is some stuff ongoing in dart-lang/http#1237 to make ok_http (another HTTP implementation) as a package provided by the dart http team itself, which (once that PR is implemented) would support more advanced options like client certificates and might actually be worth switching to from Cronet.

Until something like this is implemented I don't think I can make you happy, sorry 😞 The only "workaround" is to exclude the api endpoint (/api/ path) from the mTLS requirement, as that path should be secure (no calls without valid API key allowed - if you trust Firefly).

@dreautall dreautall added enhancement New feature or request dependencies Pull requests that update a dependency file labels Nov 4, 2024
@anuneo
Copy link
Author

anuneo commented Nov 4, 2024

Thank you @dreautall for the explanation. I look forward to the switch to ok_http, when it becomes ready.

Keep up the good work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants