我正在使用带有远程存储库的 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();