代码库如果使用https发布,在使用redmine连接代码库时会提示“redmine 版本库中不存在该条目和(或)其修订版本。”。查询apache日志(/var/log/apache2/error.log)可以看到“svn: E230001: Server SSL certificate verification failed: certificate issued for a different hostname, issuer is not trusted”的错误信息。其原因是因为https使用的证书是自签名或者不是合法CA签署的。
解决方法:
1. 修改/var/www/redmine/lib/redmine/scm/adapters/subversion_adapter.rb文件,增加--trust-server-cert参数
def credentials_string
str = ''
str << " --username #{shell_quote(@login)}" unless @login.blank?
str << " --password #{shell_quote(@password)}" unless @login.blank? || @password.blank?
str << " --no-auth-cache --non-interactive --trust-server-cert"
str
end
2. 如果是使用https://<IP>这样访问代码库,需要查看一下代码服务器的证书中主机名字段,可以将IP 主机名的对应关系写道/etc/hosts文件中,这样可以通过主机名访问代码库。
3. 在redmine添加代码库时,地址使用主机名。