本文主要是介绍linux下的redmine无法连接windows下的svn服务器,无法进行版本库配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题前提:①redmine平台位于centos系统服务器上, svn服务器位于另外一台远程window机器上;
②需要将redmine中版本库和svn整合起来,直接在redmine查看svn上的版本情况;
出现的问题:配置好版本库后,点击出现在redmine版本库中提示“版本库中不存在该条目和(或)其修订版本”;
此时,如果在linux下svn checkout 该版本库,会出现SVN检出时会出现错误提示如下:
svn: OPTIONS of 'https://server.domain.local/svn/repo': SSL handshake failed: SSL error:
Key usage violation in certificate has been detected. (https://server.domain.local)
有时会出现:错误 无法连接主机:由于目标机器积极拒绝,无法连接
问题原因:
有人说是由于redmine和svn server没有搭建在同一个服务器下,确实,通过尝试如果在同一服务器上二者很容易就能连接上;但是如果不在同台服务器就没有办法了吗?之前在曾试过二者都搭建在window下的时候通过https就可以远程连接svn.
通过查找发现了问题的根本原因:这是因为virtual svn在生成鉴权数据的时候使用了一个插件,而这个插件是OpenSSL支持的,但GnuTls是不支持的。因此Windows使用的证书不能被Linux识别。
解决办法:修改服务器上visualsvn使用的证书为第三方产生的证书源码天空,以便windows和linux都能识别。
实施过程:
步骤1:在svn server 所在window服务器下修改
1.修改svn服务器注册表
32位系统(运行regedit->找到下面的注册表项->增加一个dword类型的值)
[HKEY_LOCAL_MACHINESOFTWAREVisualSVNVisualSVN Server]"CreateGnuTLSCompatibleCertificate"=dword:0000000164位系统(运行regedit->找到下面的注册表项->增加一个dword类型的值)
[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeVisualSVNVisualSVN Server]"CreateGnuTLSCompatibleCertificate"=dword:00000001修改后如下:
2.重新生成认证证书
打开virsualSVN server | Action | Properties | Certificate
Click to Change certificate… and follow the wizard instructions to generate a new self-signed certificate.
再次执行svn,会提示证书生成者不受信赖的警告,选择永久接受即可
步骤2:在linux下保存认证并修改配置文件
通过步骤1,linux下已经可以通过svn的认证了,但是需要和svnserver连接上,还需要采取以下方式:
1.进入redmine所在文件夹
示例:svn --config-dir webserverRedmine co https://172.17.2.xx/svn/personalwork/file test
2.修改<%redmine所在文件夹%>\lib\redmine\scm\adapters\文件夹下subversion_adapter.rb的内容。
找到:
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 " str end
将其修改为如下:
def credentials_stringstr = ''str << " --username #{shell_quote(@login)}" unless @login.blank?str << " --password #{shell_quote(@password)}" unless @login.blank? || @password.blank?#str << " --no-auth-cache --non-interactive"str << " --trust-server-cert --no-auth-cache --non-interactive --config-dir /home/rexen/tools/redmine/redmine-2.3.4/webserverRedmine"strend
重启redmine,此时版本库可以访问了!
配置好的版本库如下图示:
这篇关于linux下的redmine无法连接windows下的svn服务器,无法进行版本库配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!