![SVN忽略在CentOs上为不同主机名颁发的证书](https://linux22.com/image/1528783/SVN%E5%BF%BD%E7%95%A5%E5%9C%A8CentOs%E4%B8%8A%E4%B8%BA%E4%B8%8D%E5%90%8C%E4%B8%BB%E6%9C%BA%E5%90%8D%E9%A2%81%E5%8F%91%E7%9A%84%E8%AF%81%E4%B9%A6.png)
我正在尝试使用 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"