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”方案
怎么回事,装上了也不起作用?什么原因呢?于是网上查找资料,发现遇到这个问题的人还真不少,解决方案也有几个,但不够健全,于是,进行了一番参考摸索之后,得出了两种解决方案:
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
[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
[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;
[root@localhost apr-1.5.2] ./configure
[root@localhost apr-1.5.2] make
[root@localhost apr-1.5.2] make install
[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
[root@localhost subversion-1.6.9] mv sqlite-amalgamation-3.6.22/* ./sqlite-amalgamation/
[root@localhost subversion-1.6.9] make
[root@localhost subversion-1.6.9] make install
完毕之后即可使用svn checkout https://*********/ --username ***命令了
错误原因是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,会提示证书生成者不受信赖的警告,选择永久接受即可。
这样问题就解决了。
(相关软件请到我的资源库下载)
公司电脑紧张,于是打算将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.gzwgethttp://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,会提示证书生成者不受信赖的警告,选择永久接受即可。
这样问题就解决了。
相关文章推荐
- Linux socket 初步
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Centos6 编译安装Python
- Ubuntu Linux使用体验
- About SVN
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程