2013-06-20 17 views
6

Ich benutze SharpSVN und ich füge einen Ordner zur Subversion hinzu. Dann versuche ich es zu begehen, und ich bekomme diese Ausnahme:SharpSVN - Überprüfung des Serverzertifikats fehlgeschlagen

SharpSvn.SvnRepositoryIOException: OPTIONS of 'https://sth.com/svn/blah/Documents': Server certificate verification failed: certificate has expired, certificate issued for a different hostname, issuer is not trusted

Soweit ich sehe hier: Server certificate verification failed

.it scheint, dass ich eine --trust-server-cert Option verwenden müssen, aber ich don‘ t sehen Sie dies überall in den Argumenten von SvnCommitArgs.

Auch ich habe dies gefunden: How do I use a custom Certificate Authority in SharpSvn without installing the certificate

..wo ich sehe:

client.Configuration.SetOption(...) 

Aber ich weiß nicht, welche Einstellungen ich zur Verfügung stellen muß, um es ohne Probleme zu machen zu begehen.

Hat jemand etwas ähnliches getan?

EDIT: Ich habe auch versucht, dies zu tun:

client.Authentication.SslServerTrustHandlers += new EventHandler<SharpSvn.Security.SvnSslServerTrustEventArgs>(Authentication_SslServerTrustHandlers); 

    void Authentication_SslServerTrustHandlers(object sender, SharpSvn.Security.SvnSslServerTrustEventArgs e) 
    { 
     // Accept ceritificate here? 
    } 

Aber ich verstehe nicht, was ich innerhalb des Handlers tun muss das Zertifikat zu akzeptieren ... :(

Antwort

10

OK .. ich dieses Problem gelöst und ich jetzt einen anderen Fehler Sie Was tun müssen, ist dies:

client.Authentication.SslServerTrustHandlers += new EventHandler<SharpSvn.Security.SvnSslServerTrustEventArgs>(Authentication_SslServerTrustHandlers); 
    void Authentication_SslServerTrustHandlers(object sender, SharpSvn.Security.SvnSslServerTrustEventArgs e) 
    { 
     // Look at the rest of the arguments of E, whether you wish to accept 

     // If accept: 
     e.AcceptedFailures = e.Failures; 
     e.Save = true; // Save acceptance to authentication store 
    } 
+1

Stellen Sie sicher, auch buchen das andere Argument von "E" und überprüfen. Dies ermöglicht * alle * SSL-Zertifikate (auch abgelaufen, widerrufen etc.) –