使用自签名SSL证书运行SVN命令

我正在运行以下命令:

svn info --non-interactive --trust-server-cert --no-auth-cache --xml "https://ommited/svn/YAMS" 

不幸的是,我收到以下错误:

 ?xml version="1.0" encoding="UTF-8"?> <info> svn: E175002: Unable to connect to a repository at URL 'https://ommited/svn/YAMS' svn: E175002: OPTIONS of 'https://ommited/svn/YAMS': Server certificat e verification failed: certificate issued for a different hostname, issuer is no t trusted (https://ommited) 

我想如果我把--non-interactive --trust-server-cert ,它会忽略自签名证书问题。 我在这里做错了什么?

您的主机名称不匹配。 用正确的主机名重新签发证书。

svn cmd的一个可能性是–trust-server-cert将信任任何CA,但是它仍然检查有效的主机名,并且如果cert已经过期。

所以使用正确的主机名来解决你的问题。

是的,这是没有道理的:-)

看到这里从svn邮件列表的更多信息

运行下面的php代码,接受证书,就像手动操作一样,使用命令行(你按'p'永久接受证书):

 <?php header('Content-Type: text/plain; charset=UTF-8'); print( shell_exec('echo p | svn log --limit 4 c:/work/trunk 2>&1') ); ?> 

运行一次,证书。 将被接受,现在 – 像往常一样运行(不需要echo p

 <?php header('Content-Type: text/plain; charset=UTF-8'); print( shell_exec('svn log --limit 4 c:/work/trunk 2>&1') ); ?> 

注意2>&1在最后。 我build议添加它。 这样你可以看到错误输出(如果有的话)。

值得信任颠覆,当信任服务器证书是不够的