0

我正在尝试使用 SharpSvn 访问颠覆存储库。该存储库只能通过 https 获得,并且机器使用自己的私有证书颁发机构(不要担心这里的安全性,我信任该机构)。

我有证书颁发机构的公共根证书,但是由于用户访问权限,我无法将证书安装到证书存储中。

如果我直接使用颠覆,我可以添加:

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

作为命令行对象或配置文件。

如何在 SharpSvn 中设置这些选项,以便我可以使用 cacert.crt 文件,这样当我尝试访问我的存储库时就不会出现“证书验证失败”,而且我不必忽略错误?

非常感谢

4

2 回答 2

1

怎么只有问了问题才知道答案?

我通过在 SvnClient 对象上设置配置选项来解决这个问题:

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

对自助表示歉意,希望它可以帮助下一个人。

于 2012-07-28T15:20:55.287 回答
0

扩展 Bert Huijben 的评论(上图):

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
}
于 2013-06-20T12:12:36.577 回答