我正在运行以下命令:
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议添加它。 这样你可以看到错误输出(如果有的话)。
值得信任颠覆,当信任服务器证书是不够的