Erro do Subversion: svn: E120171: Erro ao executar o contexto: Ocorreu um erro durante a comunicação SSL

Erro do Subversion: svn: E120171: Erro ao executar o contexto: Ocorreu um erro durante a comunicação SSL

Estou recebendo esse erro durante o check-out.

svn: E170013: Unable to connect to a repository at URL 'https://some.host/some/repo/'
svn: E120171: Error running context: An error occurred during SSL communication

$svn --versão

svn, version 1.10.4 (r1850624)
   compiled Jul 28 2019, 02:44:06 on x86_64-pc-linux-gnu

Copyright (C) 2019 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - using serf 1.3.9 (compiled with 1.3.9)
  - handles 'http' scheme
  - handles 'https' scheme

The following authentication credential caches are available:

* Plaintext cache in /home/kusan/.subversion
* Gnome Keyring
* GPG-Agent
* KWallet (KDE)

Por favor, me ajude a resolver esse problema. Estou em uma nova instalação do Debian 10. No Debian 9 funcionou bem. Desde já, obrigado.

Responder1

Você pode ter encontrado esse erro porque o padrão da versão mínima do TLS é superior ao usado pelo servidor Subversion.

Suas opções são atualizar a versão do TLS do servidor Subversion se você possuir o servidor ou alterar o provedor do repositório Subversion se você pagar por um.

Se essas duas opções não estiverem disponíveis para você (por exemplo, você está fazendo check-out do projeto de outra pessoa ou trabalhando em um trabalho que exige que você faça check-out de um cliente no servidor dele), então você pode optar por fazer o downgrade do mínimo versão do TLS que o SSL usa. Você deve observar que isso acarreta alguns riscos de segurança, já que o TLS 1.0 tem 20 anos e agora está obsoleto.

Com esse aviso em mente, você pode alterar seu arquivo SSL conf. Você pode descobrir onde este arquivo está localizado em seu sistema digitando

openssl version -d

Você precisará das permissões corretas para editar o arquivo.

[Gosto de fazer backup de qualquer arquivo conf antes de editá-lo para que você possa regressar facilmente, se necessário]

Adicione ao topo do arquivo:

openssl_conf = default_conf

No final do arquivo, adicione o seguinte:

[ default_conf ]

ssl_conf = ssl_sect

[ssl_sect]

system_default = ssl_default_sect

[ssl_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT:@SECLEVEL=1

Isso quer dizer que a versão 1.0 do TLS é o mínimo aceitável. Se a versão 1.1 for aceitável, altere TLSv1 para TLSv1.1

Responder2

Copie seu openssl.conf para:

/home/username/openssl.conf

Altere isso:

# MinProtocol = TLSv1.1
MinProtocol = TLSv1

Então:

export OPENSSL_CONF=/home/username/openssl.cnf
svn ls https://subversion/svn/path

Responder3

Fiz uma mistura das duas soluções anteriores e funcionou perfeitamente.

  1. copie o arquivo /usr/lib/ssl/openssl.cnf (no meu caso é .cnf) para minha casa
  2. . modifique o arquivo conforme indicado por Madeleine na primeira resposta
  3. exportar OPENSSL_CONF=~/openssl.cnf

Muito obrigado a ambos :)

Responder4

Tive um problema semelhante no Windows no trabalho, usando um git svn clonecomando, com um erro um tanto enigmático:

Erro ao executar o contexto...

Reverti para a versão 2.28.0 do git (da versão 2.41.0) e a conexão com o antigo servidor SVN foi bem-sucedida.

informação relacionada