SVN: SSL handshake_failure

Usually, an SSL handshake_failure is caused by providing a bad client certificate.
If this is not the case, you may add following line to smartgit.properties:


javax.net.debug=ssl

and launch SmartGit from the console (on Windows, use smartgithgc.exe).
The resulting debug output may give hints on possible other reasons. Sometimes it may still be meaningless as it was the case for a support request we have received today.
The relevant part immediately before the error just showed up:


QThreadPoolThread-12 (smartgit.SZ), READ: SSLv3 Alert, length = 2
QThreadPoolThread-12 (smartgit.SZ), RECV TLSv1 ALERT: warning, handshake_failure
SSL - handshake alert: handshake_failure
QThreadPoolThread-12 (smartgit.SZ), handling exception: javax.net.ssl.SSLProtocolException: handshake alert: handshake_failure
QThreadPoolThread-12 (smartgit.SZ), SEND TLSv1 ALERT: fatal, description = unexpected_message

As it turned out, the SSLv2Hello protocol needs to be enabled by adding following line to smartgit.properties:


svnkit.http.sslProtocols=SSLv2Hello,SSLv3

After restarting SmartGit, the problem should be gone.