Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

agnos.is Forums

  1. Home
  2. Selfhosted
  3. Securely Expose your Homelab Services with Mutual TLS - YouTube

Securely Expose your Homelab Services with Mutual TLS - YouTube

Scheduled Pinned Locked Moved Selfhosted
selfhosted
24 Posts 13 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • possiblylinux127@lemmy.zipP This user is from outside of this forum
    possiblylinux127@lemmy.zipP This user is from outside of this forum
    [email protected]
    wrote last edited by
    #1
    This post did not contain any content.
    dan@upvote.auD tinsuke@lemmy.worldT L D N 5 Replies Last reply
    52
    • possiblylinux127@lemmy.zipP [email protected]
      This post did not contain any content.
      dan@upvote.auD This user is from outside of this forum
      dan@upvote.auD This user is from outside of this forum
      [email protected]
      wrote last edited by [email protected]
      #2

      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.

      A netrunner@programming.devN 2 Replies Last reply
      10
      • possiblylinux127@lemmy.zipP [email protected]
        This post did not contain any content.
        tinsuke@lemmy.worldT This user is from outside of this forum
        tinsuke@lemmy.worldT This user is from outside of this forum
        [email protected]
        wrote last edited by [email protected]
        #3

        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)

        A M dataprolet@lemmy.dbzer0.comD 3 Replies Last reply
        18
        • dan@upvote.auD [email protected]

          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.

          A This user is from outside of this forum
          A This user is from outside of this forum
          [email protected]
          wrote last edited by
          #4

          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 vpn/mtls.

          dan@upvote.auD 1 Reply Last reply
          3
          • tinsuke@lemmy.worldT [email protected]

            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)

            A This user is from outside of this forum
            A This user is from outside of this forum
            [email protected]
            wrote last edited by
            #5

            I was curious so I looked it up.. But it should technically work on FF for Android, although there is a bug in the UI.

            See:

            • https://connect.mozilla.org/t5/ideas/allow-personal-certificates-in-firefox-mobile/idi-p/176
            tinsuke@lemmy.worldT 1 Reply Last reply
            1
            • dan@upvote.auD [email protected]

              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.

              netrunner@programming.devN This user is from outside of this forum
              netrunner@programming.devN This user is from outside of this forum
              [email protected]
              wrote last edited by [email protected]
              #6

              The whole point of mTLS is that you dont need to use a VPN to achieve that same security.

              dan@upvote.auD W 2 Replies Last reply
              4
              • tinsuke@lemmy.worldT [email protected]

                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)

                M This user is from outside of this forum
                M This user is from outside of this forum
                [email protected]
                wrote last edited by
                #7

                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.

                1 Reply Last reply
                2
                • A [email protected]

                  I was curious so I looked it up.. But it should technically work on FF for Android, although there is a bug in the UI.

                  See:

                  • https://connect.mozilla.org/t5/ideas/allow-personal-certificates-in-firefox-mobile/idi-p/176
                  tinsuke@lemmy.worldT This user is from outside of this forum
                  tinsuke@lemmy.worldT This user is from outside of this forum
                  [email protected]
                  wrote last edited by [email protected]
                  #8

                  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.
                  A 1 Reply Last reply
                  1
                  • netrunner@programming.devN [email protected]

                    The whole point of mTLS is that you dont need to use a VPN to achieve that same security.

                    dan@upvote.auD This user is from outside of this forum
                    dan@upvote.auD This user is from outside of this forum
                    [email protected]
                    wrote last edited by
                    #9

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

                    1 Reply Last reply
                    1
                    • A [email protected]

                      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 vpn/mtls.

                      dan@upvote.auD This user is from outside of this forum
                      dan@upvote.auD This user is from outside of this forum
                      [email protected]
                      wrote last edited by
                      #10

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

                      1 Reply Last reply
                      2
                      • tinsuke@lemmy.worldT [email protected]

                        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)

                        dataprolet@lemmy.dbzer0.comD This user is from outside of this forum
                        dataprolet@lemmy.dbzer0.comD This user is from outside of this forum
                        [email protected]
                        wrote last edited by
                        #11

                        Firefox for Android partially supports PWAs.

                        tinsuke@lemmy.worldT 1 Reply Last reply
                        0
                        • possiblylinux127@lemmy.zipP [email protected]
                          This post did not contain any content.
                          L This user is from outside of this forum
                          L This user is from outside of this forum
                          [email protected]
                          wrote last edited by
                          #12

                          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.

                          1 Reply Last reply
                          1
                          • dataprolet@lemmy.dbzer0.comD [email protected]

                            Firefox for Android partially supports PWAs.

                            tinsuke@lemmy.worldT This user is from outside of this forum
                            tinsuke@lemmy.worldT This user is from outside of this forum
                            [email protected]
                            wrote last edited by
                            #13

                            Oh, I meant mutual TLS by "it". Edited.

                            1 Reply Last reply
                            1
                            • possiblylinux127@lemmy.zipP [email protected]
                              This post did not contain any content.
                              D This user is from outside of this forum
                              D This user is from outside of this forum
                              [email protected]
                              wrote last edited by [email protected]
                              #14

                              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.

                              N Z 2 Replies Last reply
                              3
                              • tinsuke@lemmy.worldT [email protected]

                                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.
                                A This user is from outside of this forum
                                A This user is from outside of this forum
                                [email protected]
                                wrote last edited by [email protected]
                                #15

                                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.worldT 1 Reply Last reply
                                0
                                • D [email protected]

                                  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.

                                  N This user is from outside of this forum
                                  N This user is from outside of this forum
                                  [email protected]
                                  wrote last edited by
                                  #16

                                  I set my caddy reverse proxy to only accept request from localhost.

                                  It is a bit more involved but you can actually get a proper cert for localhost stuff, with your domain pointing to an internal ip addr and not risk exposing your public ip and having to open a port.

                                  D 1 Reply Last reply
                                  1
                                  • possiblylinux127@lemmy.zipP [email protected]
                                    This post did not contain any content.
                                    N This user is from outside of this forum
                                    N This user is from outside of this forum
                                    [email protected]
                                    wrote last edited by
                                    #17

                                    mTLS is so cool, until you find out that almost no clients support it.

                                    W 1 Reply Last reply
                                    4
                                    • A [email protected]

                                      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.worldT This user is from outside of this forum
                                      tinsuke@lemmy.worldT This user is from outside of this forum
                                      [email protected]
                                      wrote last edited by
                                      #18

                                      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!

                                      1 Reply Last reply
                                      1
                                      • D [email protected]

                                        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.

                                        Z This user is from outside of this forum
                                        Z This user is from outside of this forum
                                        [email protected]
                                        wrote last edited by
                                        #19

                                        From localhost? Did you mean from local network or am I misunderstanding your point here?

                                        D 1 Reply Last reply
                                        0
                                        • Z [email protected]

                                          From localhost? Did you mean from local network or am I misunderstanding your point here?

                                          D This user is from outside of this forum
                                          D This user is from outside of this forum
                                          [email protected]
                                          wrote last edited by
                                          #20

                                          Yes, local network I meant.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups