您的位置:首页 > 理论基础 > 计算机网络

CentOS 使用SVN https 问题及解决方案

2015-10-13 16:26 302 查看
CentOS下svn 访问Https问题及解决方案
                 (相关软件请到我的资源库下载)

公司电脑紧张,于是打算将SVN服务器和数据库服务器合并为一个,因为SVN服务器是一个集成网卡,且没有多余的网卡插槽,但数据库服务器需要双网卡。因此决定将SVN信息搬移到数据库服务器上。
因此责令运维部在数据库服务器上进行SVN服务器的构建和数据迁移,但迁移完毕之后,SVN的访问路径也变更为更为安全的https访问模式了,于是,急速在Linux测试环境下进行数据路径重新指定和更新,
却发现测试不能使用了,报出如下错误:
[root@localhost]$ svn checkout https://192.168.0.202/svn/WorkingSvn
svn: 方法 OPTIONS
失败于“ https://192.168.0.202/svn/WorkingSvn: SSL handshake failed: SSL
错误:Key usage violation in certificate has been detected. (
https://192.168.0.202)
第一反应是Linux下的svn没有安装https协议的包,于是使用命令svn –version 进行查看,结果发现已经装了,如下所示:
[root@localhost EtCore]# svn--version

svn,版本 1.6.11 (r934486)

  编译于 Aug 17 2015,08:37:43

 

版权所有 (C) 2000-2009 CollabNet。

Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。

此产品包含由 CollabNet(http://www.Collab.Net/)开发的软件。

 

可使用以下的版本库访问模块:

 

* ra_neon : 通过 WebDAV 协议使用 neon 访问版本库的模块。

 - 处理“http”方案

 - 处理“https”方案

* ra_svn : 使用 svn 网络协议访问版本库的模块。 - 使用 Cyrus SASL 认证

 - 处理“svn”方案

* ra_local : 访问本地磁盘的版本库模块。

 - 处理“file”方案

怎么回事,装上了也不起作用?什么原因呢?于是网上查找资料,发现遇到这个问题的人还真不少,解决方案也有几个,但不够健全,于是,进行了一番参考摸索之后,得出了两种解决方案:

方案一:(Linxu下安装软件包)

下载如下软件:

wgethttp://www.webdav.org/neon/neon-0.29.6.tar.gz

 wgethttp://www.sqlite.org/sqlite-amalgamation-3.6.22.tar.gz

 wgethttp://subversion.tigris.org/downloads/subversion-1.6.9.tar.gz

 wgethttp://mirror.esocc.com/apache//apr/apr-1.5.2.tar.gz

 wget http://mirror.esocc.com/apache//apr/apr-util-1.5.4.tar.gz

第一步:使用命令tar –zxvf 解压指定的文件如下:

[root@localhost home]# tar -zxvfneon-0.29.6.tar.gz

[root@localhost home]# tar -zxvfapr-1.5.2.tar.gz

[root@localhost home]# tar -zxvf apr-util-1.5.4.tar.gz

[root@localhost home]# tar -zxvfsubversion-1.6.9.tar.gz

[root@localhost home]# tar -zxvfsqlite-amalgamation-3.6.22.tar.gz

第二步:对各种文件按如下顺序进行源码安装

源码安装neon

[root@localhost home]# cdneon-0.29.6

[root@localhost neon-0.29.6] ./configure--with-ssl --with-libs=/usr/lib64/openssl/ --prefix=/usr/local/neon(注意:添加 –with-ssl和 –with-libs,这很重要)

[root@localhost neon-0.29.6] make

         [root@localhost neon-0.29.6] makeinstall;

源码安装apr

[root@localhosthome]# cd apr-1.5.2

[root@localhost apr-1.5.2]  ./configure

[root@localhost apr-1.5.2] make

[root@localhost apr-1.5.2] make install

源码安装apr-util

[root@localhosthome]# cd apr-util-1.5.4

[root@localhost apr-util-1.5.4]    ./configure –with-apr=/usr/local/apr

[root@localhost apr-util-1.5.4]    make

[root@localhost apr-util-1.5.4]    make install

搬移解压之后的Sqlit到Subversion中;

[root@localhosthome] #cd subversion-1.6.9

[root@localhost subversion-1.6.9] mv sqlite-amalgamation-3.6.22/*  ./sqlite-amalgamation/

安装subversion

[root@localhost subversion-1.6.9] ./configure --with-ssl --with-neon=/usr/local/neon--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr 

[root@localhost subversion-1.6.9] make

[root@localhost subversion-1.6.9] make install

完毕之后即可使用svn checkout https://*********/ --username ***命令了

方案二(Windows forLinux)

信息来源:http://www.visualsvn.com/support/topic/00056/

错误原因是windows使用的证书linux不能识别。
改正方法是:修改服务器上visualsvn使用的证书为第三方产生的证书,以便windows和linux都能识别。
过程
1.    Add the following registry value to the Windows registry:(我的是32位)
o   for 32-bit system:(运行regedit->找到下面的注册表项->增加一个dword类型的值)
o    [HKEY_LOCAL_MACHINE\SOFTWARE\VisualSVN\VisualSVNServer]
o    "CreateGnuTLSCompatibleCertificate"=dword:00000001
     
o   for 64-bit system:
o    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VisualSVN\VisualSVNServer]
o    "CreateGnuTLSCompatibleCertificate"=dword:00000001
     
2.    Start VisualSVN Server Manager.(打开virsualSVN server)
3.    Go to Action | Properties | Certificate.
4.    Click Change certificate... and follow the wizard instructionsto generate a new self-signed certificate.
再次执行svn,会提示证书生成者不受信赖的警告,选择永久接受即可。
这样问题就解决了。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CentOS Linux SVN Htt