WebSVN 接受不受信任的 HTTPS 证书

Lau*_*ent 6 certificate https svn

我正在使用带有远程存储库的 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 
Run Code Online (Sandbox Code Playgroud)

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

更新:

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

$config->setSvnConfigDir('/etc/subversion');
Run Code Online (Sandbox Code Playgroud)

/etc/subversion/servers我创建了一个组并将证书关联到信任:

[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
Run Code Online (Sandbox Code Playgroud)

AJ0*_*J01 3

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

选项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
Run Code Online (Sandbox Code Playgroud)

如果您想要快速完成某些任务,则可以使用选项 1,否则请使用选项 2

更正

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