Utilizzando il VisualSVN server per la gestione CVS può succedere che l’handshake nella comunicazione con protocollo SSL (https, porta 443) tra il client ed il server possa fallire. Questo generalmente si verifica quando il server utilizza un certificato auto validato (self-signed, n.d.a.) e si utilizza un client Subversion insieme alle librerie GnuTLS. Questo problema può verificarsi anche dopo un qualsiasi aggiornamento dei pacchetti con il gestore dei pacchetti di Linux (personalmente mi è capitato su Ubuntu11.04) .

Per aggirare esistono due possibili soluzioni.

La prima consiste nel far puntare il link simbolico nominato /usr/lib/libneon-gnutls.so.27 alla libreria /usr/lib/libneon-gnutls.so.27. Quindi dovremo procedere nel seguente modo:

[cc language=bash]sudo mv /usr/lib/libneon-gnutls.so.27 /usr/lib/libneon-gnutls.so.27.old
sudo ln -s /usr/lib/libneon.so.27 /usr/lib/libneon-gnutls.so.27[/cc]

 E tutto dovrebbe tornare a funzionare… almeno fino al prossimo upgrade!

La seconda soluzione, che dovrebbe essere più efficace, ma con la mia configurazione non ha voluto saperne di funzionare, consiste nel creare una chiave nel registro di Windows (se il server è installato su Windows chiaramente). Le chiavi da aggiungere sono :

Per sistemi a 32-bit:
[HKEY_LOCAL_MACHINE\SOFTWARE\VisualSVN\VisualSVN Server]
“CreateGnuTLSCompatibleCertificate”=dword:00000001

Per sistemi a 64-bit:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VisualSVN\VisualSVN Server]
“CreateGnuTLSCompatibleCertificate”=dword:00000001

Una volta aggiunta la chiave di registro bisogna aprire l’interfaccia di VisualSVN server ed andare nelle opzione della configurazione dell’autenticazione… 

… e generare un nuovo certificato come da figura sottostante.

Il server verrà riavviato automaticamente, eventualmente riavviare il servizio dalla GUI o col comando net di Windows.

Fonti:
http://www.visualsvn.com/support/topic/00056/
http://andrewbrobinson.com/2011/11/01/fixing-ssl-handshake-failed-ssl-error-key-usage-violation-in-certificate-has-been-detected-error-on-svn-checkout/