Comment utiliser une autorité de certification personnalisée dans Sharpsvn sans installer le certificat

StackOverflow https://stackoverflow.com//questions/11652229

Question

J'essaie d'accéder à un référentiel Subversion à l'aide de Sharpsvn.Le référentiel est uniquement disponible via HTTPS et la machine utilise sa propre autorité de certification privée (ne vous inquiétez pas de la sécurité ici, je fais confiance à l'autorité).

J'ai le certificat de racine publique de l'autorité de certification, mais en raison des droits d'accès des utilisateurs, je ne peux pas installer le certificat dans le magasin de certificats.

Si j'utilise directement Subversion, je peux ajouter:

servers:global:ssl-authority-files=/path/to/cacert.crt
servers:groups:myhost=myhostsdns.com

soit comme des objets de ligne de commande ou dans le fichier de configuration.

Comment définir ces options sur Sharpsvn afin que je puisse utiliser le fichier cacert.crt afin que je ne reçois pas "la vérification du certificat a échoué" lorsque j'essaie d'accéder à mon référentiel, et je n'ai pas besoin d'ignorerl'erreur?

Merci beaucoup

Était-ce utile?

La solution

Comment est-ce que ce n'est qu'après que vous avez posé la question que vous réalisez la réponse?

J'ai résolu cela en définissant les options de configuration sur l'objet SVNClient comme tel:

SvnClient _svnClient = new SvnClient();
_svnClient.Configuration.SetOption("servers", "global", "ssl-authority-files", "/path/to/cacert.crt");
_svnClient.Configuration.SetOption("servers", "groups", "myhost", "myhostsdns.com");

excuses sur l'auto-assistance, espérons que cela aide la prochaine personne.

Autres conseils

Développer sur le commentaire de Bert Huijben (ci-dessus):

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
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top