WebSVN 接受不受信任的 HTTPS 证书

WebSVN 接受不受信任的 HTTPS 证书

我正在使用带有远程存储库的 websvn。此存储库使用https协议。配置完 websvn 后,我在 websvn 网页上看到:

svn --non-interactive --config-dir /tmp list --xml --username '***' --password '***' 'https://scm.gforge.....'
OPTIONS of 'https://scm.gforge.....': Server certificate verification failed: issuer is not trusted 

我不知道如何指示 websvn 执行 svn 命令以接受和存储证书。有人知道怎么做吗?

更新:

成功了!为了让内容井然有序,我更新了 WebSVN 配置文件,将 subversion 配置目录重新定位到在 /etc/subversion这是 debian 的默认路径:

$config->setSvnConfigDir('/etc/subversion');

/etc/subversion/服务器我已经创建了一个组并将证书关联到信任:

[groups]
my_repo = my.repo.url.to.trust

[global]
ssl-trust-default-ca = true
store-plaintext-passwords = no

[my_repo]
ssl-authority-files = /etc/apache2/ssl/my.repo.url.to.trust.crt

答案1

有两种可行的方法可以解决此问题。

选项1:

su 到 websvn 正在运行的用户,并svn log https://your.secure.repo.com/repo/ 针对目标服务器执行。Subversion 随后会要求您接受证书,您可以选择永久接受。然后证书就可以使用了。

选项 2:

再次,以运行 websvn 进程的用户身份,编辑 ~/.subversion/servers 并添加到 [global] 部分;

ssl-authority-files = /home/websvn/ssl/CAcert1.pem

如果你想要快速完成某件事,那么可以使用选项 1,否则可以选择选项 2

更正

正如发帖人在命令中指出的那样,svn 是使用 --config-dir 选项调用的。这意味着 subversion 将期望其配置位于该目录中,在本例中为 /tmp。因此,将服务器和配置从 ~/.subversion/ 复制到 /tmp 目录,subversion 客户端将使用它们。

答案2

还有第三个更简单的选项。可以将 websvn 配置为信任所有服务器证书。添加include/config.php或取消注释以下行:

$config->setTrustServerCert();

相关内容