From: Patrick Steinhardt <ps@pks.im>
To: Ron Nazarov <ron@noisytoot.org>
Cc: git@vger.kernel.org,
"Stanislav Malishevskiy" <stanislav.malishevskiy@gmail.com>,
"Jeff King" <peff@peff.net>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Junio C Hamano" <gitster@pobox.com>,
"Stanislav Malishevskiy" <s.malishevskiy@auriga.com>
Subject: Re: [PATCH] config: add http.sslVerifyHost option
Date: Wed, 12 Aug 2026 13:56:50 +0200 [thread overview]
Message-ID: <anxfgvcDkV6k1BLb@pks.im> (raw)
In-Reply-To: <7b833cd4-bad3-462a-9860-a8153d4f6b0d@noisytoot.org>
On Wed, Aug 12, 2026 at 04:31:59AM +0100, Ron Nazarov wrote:
> On 11/08/2026 13:40, Patrick Steinhardt wrote:
> > On Fri, Aug 07, 2026 at 04:33:14PM +0100, Ron Nazarov wrote:
> > > This allows for disabling host verification without completely
> > > disabling TLS certificate verification. This is useful when using TLS
> > > in a decentralized way (similar to how one would use SSH), where the
> > > remote endpoint has a self-signed certificate that does not
> > > necessarily have a valid CN (or any CN at all), and you set
> > > http.sslCAInfo to that specific certificate. Without such an option,
> > > it is impossible to use a certificate with a non-matching hostname
> > > without completely disabling TLS verification, which is insecure.
> >
> > Arguably both options are insecure, this new option just pretends to be
> > secure. If we accept arbitrary certificates for an endpoint, then it
> > becomes trivial for somebody to perform a man-in-the-middle attack
> > against you by simply swapping out the certificate against a self-signed
> > one. And man-in-the-middle attacks are basically what we want to protect
> > against with TLS.
> >
> > [...]
> >
> > Maybe I'm missing something obvious. But if so, I think both the commit
> > message and the documentation would need to be amended to document that
> > gap and state that yes, this is still insecure.
> >
>
> The intention is for this to be combined with setting sslCAInfo and/or
> sslCAPath to the specific self-signed certificate used for the remote
> (rather than to something like a public CA where anyone can easily get a
> certificate signed by it). If used on its own (with the default CA
> certificate store) it is of course insecure. The commit message already
> states this ("and you set http.sslCAInfo to that specific certificate",
> although perhaps it could be made more clear that if you don't do this it is
> insecure), but the documentation currently does not. The specific use-case
> I am currently using this option for is a private git server accessible over
> a public IPv6 address using a self-signed certificate which does not have a
> valid CN (or a subjectAltName) at all. I have something like this in my
> .gitconfig:
>
> [http "https://[2001:db8::1]/"]
> sslCAInfo = /path/to/cert.pem
> sslVerifyHost = false
> sslCAPath = /dev/null
>
> where /path/to/cert.pem is the specific certificate served by the git
> server, which I have verified externally to belong to the owner. This
> provides the same security guarantees as using SSH with the server's
> fingerprint in my known_hosts file.
Okay, that's a whole lot more reasonable then. You essentially pin the
certificate that you expect from the server-side, and as a result noone
can intercept the traffic unless they have the private key. We should
definitely update the documentation then to highlight how users can
securely use `sslVerifyHost` so that they're not on their own to figure
this out.
> (Also, this is unrelated to your review, but for some reason my original
> email containing the patch is missing from lore.kernel.org. I don't know
> why, since people not in the CC list are replying, it presumably must have
> been sent to the list.)
Hm, curious. No idea why that is -- hopefully, v2 will land just fine.
Patrick
prev parent reply other threads:[~2026-08-12 11:57 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260807153315.9586-1-ron@noisytoot.org>
2026-08-11 12:40 ` [PATCH] config: add http.sslVerifyHost option Patrick Steinhardt
2026-08-11 21:19 ` brian m. carlson
[not found] ` <7b833cd4-bad3-462a-9860-a8153d4f6b0d@noisytoot.org>
2026-08-12 11:56 ` Patrick Steinhardt [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=anxfgvcDkV6k1BLb@pks.im \
--to=ps@pks.im \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
--cc=ron@noisytoot.org \
--cc=s.malishevskiy@auriga.com \
--cc=stanislav.malishevskiy@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox