• daniskarma@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    1 day ago

    I tried long ago, but as they said, client side authentication is an issue, most clients do not support it.

    I have a system, I use wireguard vpn and for when I want to use a domain name with proper tls (because some client apps require a proper tls connection to work) I set my caddy reverse proxy to only accept request from localhost local network.

    So, there’s a public domain with let’s encrypt TLS, and that domain can only be properly access from local network. Then I connect using vpn to my local network and the client app can access the service over a CA verified TLS.

  • tinsukE@lemmy.world
    link
    fedilink
    English
    arrow-up
    23
    ·
    edit-2
    1 day ago

    Tried it and it was a breeze to set it up with Caddy!

    Problem was… lack of client side support, specially on mobile.

    Many (most?) client apps don’t support it.

    Use the PWA from your browser, you said? I hope you like Google and using Chrome, because Firefox for Android doesn’t support it (mTLS) 😭 (for now, see replies)

    • MysteriousSophon21@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      2 days ago

      The client cert management is the biggest hurdle with mTLS - I’ve found using a YubiKey to store certs makes it wayy more portable across devices, tho still doesn’t solve the mobile app support issue.

      • tinsukE@lemmy.world
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        1
        ·
        edit-2
        2 days ago

        That’s no bug, mTLS just isn’t implemented on Firefox (for Android) currently.

        There are 2 proposed solutions on that thread:

        1. It was possible on old versions of FF, but not the current ones. I believe this to be related to the versions prior to the revamp that happened circa 2020. (the author refers to a version that was already “old” by 2022). So it was something supported on OG Firefox, not not on the new (current, by 5 years already) version.
        2. Using the debug menu’s secret settings to enable “Use third party CA certificates”. This is available on current FF, but that’s no mutual TLS. It is about allowing CA certificates that you installed yourself on your device for server TLS auth.
        • Antithetical@lemmy.deedium.nl
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          2 days ago

          How I read it is that they’ve reintroduced it in FF 139 and that you need to enable the third-party certificates to acces the client certificate in the Android cert. store. But the linked bugs in the later replies of my link mention a regression in FF 140+.

          I do agree that this is still a horrible UX though. Sadly I don’t have the time currently to test it.

          • tinsukE@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 day ago

            Oh, you’re right.

            It seems to have been implemented and working on 138, but broken since 140 (my current version), with a fix scheduled to come on 142.

            I’m looking forward to that one!

  • Lem453@lemmy.ca
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    I didn’t know what this was until now. It seems like the beta bitwarden app supports this. Would be interesting to get it setup for that.

  • dan@upvote.au
    link
    fedilink
    English
    arrow-up
    13
    arrow-down
    3
    ·
    edit-2
    3 days ago

    I haven’t watched the video yet, but it’s generally not worth the hassle of setting up mutual TLS if you’re already using a peer-to-peer VPN like Tailscale, as the VPN software is already doing mutual authentication.

    Edit: A peer-to-peer VPN (or mesh VPN) is one where two systems that are connected to the VPN can directly communicate with each other, instead of needing to go through a central server as with something like OpenVPN. With Tailscale or Wireguard, the peers need each other’s public keys to communicate.

      • WhyJiffie@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        1
        arrow-down
        1
        ·
        1 day ago

        that’s not that same security. an observer will still know that you are connecting over HTTPS to a particular doman/IP, maybe they can also deduce that you are using mTLS, and all your other traffic is not protected by it at all. all the while with wireguard, they can see that it’s wireguard traffic, and where it goes, but anything inside is secret, plus if an app uses unencrypted traffic for some reason (smb, dns, custom and special protocols), wireguard will hide and protect that too.

      • dan@upvote.au
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        2 days ago

        I get that, but a lot of people are already using a VPN to access their self-hosted system.

    • Antithetical@lemmy.deedium.nl
      link
      fedilink
      English
      arrow-up
      8
      ·
      edit-2
      3 days ago

      This is only true for the connection security. With mTLS you can also authenticate to the webapplication you’re trying to reach. So consider your use-case between von/mtls.

      • dan@upvote.au
        link
        fedilink
        English
        arrow-up
        4
        ·
        2 days ago

        Oh yeah that’s a great point I didn’t consider. Thanks.