I'm trying to git clone some repository, but then I get the error:
$ git clone --recursive https://some-url.git
Cloning into 'project'...
fatal: unable to access 'https://https://some-url.git/': Unknown SSL protocol error in connection to
some-url.git:443
I've read that the git repositories moved to force the TLS1.0 and no more support SSLv3 communication due to the POODLE vulnerability. But I don't know whether this error message means that my git client only knows to talk SSLv3 and the server denies or that the server only knows to talk SSLv3 and my client denies. If the problem is in my client, how can I configure it to use TLS; on the other hand, if it is the server, how can I resolve?
The error is received on both SourceTree and scm git (console and gui).
Git 2.5 (August 2015) already allows to specify a list of ciphers to use when negotiating SSL connections, with
http.sslCipherList
andGIT_SSL_CIPHER_LIST
.(See Cannot communicate securely with peer: no common encryption algorithm(s))
Starting Git 2.6+ (Q3 2015), it will be possible to specify the SSL version explicitly:
See commit 01861cb (14 Aug 2015) by Elia Pinto (
devzero2000
).Helped-by: Eric Sunshine (
sunshineco
).(Merged by Junio C Hamano --
gitster
-- in commit ed070a4, 26 Aug 2015)The setting above is important since GitHub now (Feb. 2018) forces disabling weak cryptographic standards.
Git 2.18 (Q2 2018) can now use TLSv1.3:
When built with more recent
cURL
,GIT_SSL_VERSION
can now specify "tlsv1.3
" as its value.See commit d81b651 (29 Mar 2018) by Loganaden Velvindron (
loganaden
).(Merged by Junio C Hamano --
gitster
-- in commit 9b59d88, 11 Apr 2018)With Git 2.21 (Q1 2019), a new "
http.version
" configuration variable can be used with recent enough cURL library to force the version of HTTP used to talk when fetching and pushing.See commit d73019f (09 Nov 2018) by Force Charlie (
fcharlie
).(Merged by Junio C Hamano --
gitster
-- in commit 13d9919, 04 Jan 2019)The
git config
man page now shows: