git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Konstantin Khomoutov <kostix@bswap.ru>
Cc: Lars Schneider <larsxschneider@gmail.com>,
	git-for-windows@googlegroups.com, git@vger.kernel.org
Subject: Re: [git-for-windows] [ANNOUNCE] Git for Windows 2.14.0
Date: Mon, 7 Aug 2017 11:20:14 +0200 (CEST)	[thread overview]
Message-ID: <alpine.DEB.2.21.1.1708071103220.4271@virtualbox> (raw)
In-Reply-To: <20170807082105.fwbv7d7hotsqeddx@tigra>

Hi Lars & Konst,

On Mon, 7 Aug 2017, Konstantin Khomoutov wrote:

> On Sun, Aug 06, 2017 at 01:16:46PM +0200, Lars Schneider wrote:
> 
> [...]
> > >  * It is now possible to switch between Secure Channel and OpenSSL for
> > >    Git's HTTPS transport by setting the http.sslBackend config
> > >    variable to "openssl" or "schannel"; This is now also the method
> > >    used by the installer (rather than copying libcurl-4.dll files
> > >    around).
> > 
> > Does anyone have a pros/cons list for this option?

There is no exhaustive list of pros/cons as of time of writing. Off the
top of my head:

OpenSSL pros:
- well-tested
- been the only option for Git for Windows in almost a decade

OpenSSL cons:
- does not integrate with the Windows Certificate Store

Secure Channel pros:
- well-tested
- is an integral part of the Windows Operating System
- supports the Windows Certificate Store

Secure Channel cons:
- has not been used by many Git for Windows users yet (so may have some
  surprising issues?)
- does not support OpenSSL's way of adding custom certificates via
  ca-bundle.crt

The big deal with the Windows Certificate Store? It can be administered
enterprise-wide via regular Windows administration tools. That makes a
huge difference when working with an internal server that has a custom SSL
certificate.

Please note that I, personally, have used Git for Windows almost
exclusively via Secure Channel since late January this year. I have not
had *any* trouble. But then, I do not use servers with custom SSL
certificates at the moment.

> > AFAIK OpenSSL is still the default in the GfW installer and I wonder
> > why.

Only one reason: the law of least surprise. Some users went to certain
lengths when working with custom SSL certificates, building elaborate
upgrade scenarios that modify the ca-bundle.crt file (and of course none
of those efforts try to help any other user having the same problem).

> > My gut feeling would be to go with the SSL implementation shipped with
> > the OS. However, I don't have enough knowledge of either
> > implementation to make an assessment.

The reason I worked on cURL to allow choosing the SSL backend at runtime
rather than build time is so that you can test this easier.

Personally, I think that Secure Channel is the better option, for the same
reason you mentioned: it is integrated with Windows. So if you configure
proxies via regular Windows settings, Secure Channel will definitely
handle it as expected. If you trust individual custom certificates via
regular Windows mechanisms, Secure Channel will pick that up (IIUC).

Therefore I would expect Secure Channel to provide a far superior user
experience to OpenSSL.

As a consequence, my plan is to switch the default from OpenSSL to Secure
Channel when I feel that enough users have tested that backend and are as
satisfied with it as I am. This will of course *not* affect users who
upgrade, as the Git for Windows installer remembers previous settings and
reapplies them on upgrades.

> One fact which immediately comes to mind is that both frameworks use
> different sets of certificates (schannel uses the system's one, and
> OpenSSL uses what gets shipped with it).  Another fact is that they
> might have different sets or protocols implemented and/or enabled by
> default.  Hence switching schannel on for people who used OpenSSL might
> break things for them.

Indeed. OTOH Secure Channel should be a safe default.

Ciao,
Dscho

      reply	other threads:[~2017-08-07  9:20 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-05 23:00 [ANNOUNCE] Git for Windows 2.14.0 Johannes Schindelin
2017-08-06  8:34 ` [git-for-windows] " Johannes Sixt
2017-08-07 10:02   ` Johannes Schindelin
2017-08-07 17:31     ` Johannes Sixt
2017-08-07 19:35       ` Johannes Schindelin
2017-08-06 11:16 ` Lars Schneider
2017-08-07  8:21   ` Konstantin Khomoutov
2017-08-07  9:20     ` Johannes Schindelin [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=alpine.DEB.2.21.1.1708071103220.4271@virtualbox \
    --to=johannes.schindelin@gmx.de \
    --cc=git-for-windows@googlegroups.com \
    --cc=git@vger.kernel.org \
    --cc=kostix@bswap.ru \
    --cc=larsxschneider@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;
as well as URLs for NNTP newsgroup(s).