我已经设置了Redmine通过Bitnami Redmine 堆栈我无法通过 https 访问远程 SVN 存储库。问题似乎与我没有签名的证书以及提供的证书与主机名不匹配有关(我通过多个主机名访问同一台服务器)。
我对 Ruby、Mongrel、Rails 和 Redmine 还不熟悉。
遵循此论坛主题,我改变了Redmine调用svn
客户端的\apps\redmine\lib\ redmine\scm\adapters\subversion_adapter.rb
路径
SVN_BIN = "svn"
到
SVN_BIN = "svn --trust-server-cert --non-interactive --config-dir c:/user/temp"
我希望该--trust-server-cert
选项可以修复证书问题。但是,我仍然收到以下错误消息mongrel.log
:
svn: 选项 'https://server.xyz:8443/svn/reponame':服务器证书验证失败:为不同的主机名颁发的证书,颁发者不受信任(https://server.xyz:8443)
有人知道该怎么办吗?
附加信息:
每次更改后我都会重新启动 mongrel 服务
我确信配置更改已生效,因为 subversion 已在中创建了完整的配置目录
c:\user\temp
我可以使用命令行访问远程存储库,
svn
没有问题远程存储库在装有 VisualSVN 的 Windows 机器上运行
答案1
我知道这是一个老问题,但它仍然是一个常见问题。简而言之,您需要让 Subversion 将服务器证书存储到正确的配置目录中。
从命令行运行以下命令:
svn --config-dir c:/user/temp info https://<url_of_subversion_repository>
您应该收到以下消息:
Error validating server certificate for https://<url_of_subversion_repository>:443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
- The certificate hostname does not match.
Certificate information:
- Hostname: <url_of_subversion_repository>
- Valid: from Thu, 10 Dec 2009 04:06:30 GMT until Tue, 09 Dec 2014 04:06:30 GMT
- Issuer: <Cert Details>, <Cert Details>, <City>, <State>, <Country>
- Fingerprint: <Finger Print>
(R)eject, accept (t)emporarily or accept (p)ermanently?
永久接受证书。这会将所需信息保存到您为 Redmine 指定的相同配置目录中,一切就绪了。
答案2
我通过将 subversion 服务器的主机名设置为我从 redmine 安装中查询的主机名来对其进行排序。了解如何禁用此功能仍然很有趣。