On Mon, Jun 15, 2020 at 5:05 AM Michael Back <mb...@qti.qualcomm.com> wrote:
> Hello Subversion folks, > > When I upgraded to the latest version of my Linux OS (Ubuntu 20.04) and > installed Subversion 1.13.0 client, svn could no longer connect to our > company's old subversion server via https. > Doing a checkout results in the same error. > > The server (I am told) is running RHEL 6.10 with OpenSSL 1.0.1. > > I understand that the old server is limited to using the old insecure > TLSv1... I'm not IT though with no power to upgrade the server... and I > just want to use our internal system. How do I configure the new svn to > connect to the old server? > > > We ran into similar problems with one of our servers after upgrading to Ubuntu 20.04. There is no reason that your server cannot offer TLS 1.2 so the first thing I would do is check whether it does or not. This script will list all of the protocols and ciphers available on your server. Run it like this: $ ./testssl.sh svn.apache.org 443 tls1_2: ECDHE-RSA-AES256-GCM-SHA384 tls1_2: ECDHE-RSA-CHACHA20-POLY1305 tls1_2: ECDHE-RSA-AES128-GCM-SHA256 tls1_2: ECDHE-RSA-AES256-SHA384 tls1_2: ECDHE-RSA-AES128-SHA256 tls1_3: ECDHE-ECDSA-AES256-GCM-SHA384 tls1_3: ECDHE-RSA-AES256-GCM-SHA384 tls1_3: DHE-DSS-AES256-GCM-SHA384 tls1_3: DHE-RSA-AES256-GCM-SHA384 ... snipped Here is the script ==================== for v in ssl3 tls1 tls1_1 tls1_2 tls1_3; do for c in $(openssl ciphers 'ALL:eNULL' | tr ':' ' '); do openssl s_client -connect $1:$2 \ -cipher $c -$v < /dev/null > /dev/null 2>&1 && echo -e "$v:\t$c" done done ===================== In my case, our server did offer TLS 1.2 but the problem was that the DHE cipher it offered was using a weak key and OpenSSL would reject it. If you tried to connect using OpenSSL we would see this error: $ openssl s_client -connect servername:443 > /dev/null ..snipped... 139712693810496:error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small:../ssl/statem/statem_clnt.c:2149: We found this workaround that we could do on the client to tell OpenSSL to accept the weak DHE key size. diff -u /etc/ssl/openssl.cnf~ /etc/ssl/openssl.cnf --- /etc/ssl/openssl.cnf~ 2020-04-28 11:13:02.410766406 -0400 +++ /etc/ssl/openssl.cnf 2020-04-28 11:13:15.922686018 -0400 @@ -15,6 +15,23 @@ #oid_file = $ENV::HOME/.oid oid_section = new_oids +### CUSTOMIZATION +# +# Reduce the security level a bit. Internal DHE keys are +# too short, and Subversion+libserf seemingly won't fall back to another +# cipher once they've agreed upon one that _should_ work (but +# doesn't). +# +openssl_conf = custom_conf +[custom_conf] +ssl_conf = ssl_sect +[ssl_sect] +system_default = system_default_sect +[system_default_sect] +CipherString = DEFAULT:@SECLEVEL=1 +MinProtocol = TLSv1.2 +### END CUSTOMIZATION + # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: So this solution is only going to help if you have the same problem, but maybe you can follow the same path towards finding your solution. -- Thanks Mark Phippard http://markphip.blogspot.com/