我正在尝试使用 phabricator (https://github.com/phacility/phabricator) 连接到外部 svn 存储库。这似乎是 svn 服务器的证书出了问题,例如 Firefox 说(“无法验证此证书,因为颁发者未知”)。我怀疑问题是机器名称和证书不匹配。但我在服务器端无能为力。
命令 phabricator 启动时出现问题(当然从 cmd 行启动也会失败),该命令为:
svn --non-interactive -no-auth-cache --trust-server-cert -username 'xxx' --password 'YYY' cat 'https://some_file_in_svn'
输出为:
Server certificate verification failed: certificate issued for a different hostname, issuer is not trusted (https://blabvlabla.com)
我没有办法改变这一行,因为 phabricator 正在生成它,而且我已经尝试了几乎所有的方法(可能是错误的方法):
令人惊讶的是,从 cmd 中删除选项(--non-interactive -no-auth-cache --trust-server-cert)使其可以工作(我必须接受证书),但如果我再次使用它们启动它则没有任何效果。
- 删除非交互式并从 svn 命令行接受证书 -> 不起作用
- 下载并导入证书 -> 不起作用
- 将证书添加到 .subversion 中的 SSL 授权列表 -> 不起作用
这里似乎有类似的东西,但没有任何作用!(https://secure.phabricator.com/T7471)。有什么方法可以告诉 subversion 不用担心,绕过证书问题吗?
答案1
我通过修改 hosts 文件来匹配证书名称和服务器名称解决了这个问题。我之前也尝试过,但 nsswitch.conf 被配置为首先检查 dns。
答案2
只需添加参数
--trust-server-cert-failures="other,unknown-ca,cn-mistmatch,expired"