我在Ubuntu 11.10中使用Eclipse(Indigo)和subclipse 3.6。
我已经在没有问题的情况下在其他机器上使用subclipse连接到svn,但是使用我最近升级的ubuntu机器(从11.04到11.10)它将无法正常工作。
当我尝试连接到我的私人svn服务器(Windows中的VisualSVN服务器)时,出现以下错误:
RA layer request failed
svn: OPTIONS of 'https://76.27.122.123/svn/brock':
SSL handshake failed: SSL error: Key usage violation in certificate has been detected. (https://76.27.122.123)
Key usage violation in certificate
所以,谷歌搜索它,找到了这个解决方案:http://andrewbrobinson.com/2011/11/01/fixing-ssl-handshake-failed-ssl-error-key-usage-violation-in-certificate-has-been-detected-error-on-svn-checkout/
这基本上说是因为霓虹灯现在正在使用GnuTls,并且它是严格的并且拒绝我的无效证书(就像我说它是私有svn因此它是不可信的)。 但是当我执行mv和符号链接命令时,它会混淆我的JavaHL设置,并给我这个错误:
Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path ...
我解除了mv命令,现在JavaHL正按照我在http://subclipse.tigris.org/wiki/JavaHL#head-5ccce53a67ca6c3965de863ae91e2642eab537de找到的说明操作,但仍然无法通过密钥使用证书错误。任何想法??
答案 0 :(得分:4)
在初始设置期间,VisualSVN Server 2.5会生成自签名证书,并将其添加到本地计算机上的“受信任的根证书颁发机构”存储中。为避免可能的安全问题,VisualSVN Server使此自签名证书仅对服务器身份验证有效(通过指定“密钥用法”扩展名)。
针对GnuTLS构建的Subversion客户端无法识别此类证书,并且会发生错误。
可能的解决方法:
答案 1 :(得分:1)
或者你可以添加
alias svn='LD_PRELOAD=/usr/lib/libneon.so.27 svn'
到.bashrc
,因此只有svn
命令会受到libneon更改的影响,而不会影响其他软件包。另外请注意,链接中提到的解决方案将在Ubuntu 12.04 LTS下中断。为此,您必须使用以下步骤:
卸载当前的libneon包:
sudo apt-get remove libneon27
从http://packages.debian.org/squeeze/libneon27下载最新的libneon软件包(在底部,您可以为您的架构选择正确的版本)。
安装所需的libssl依赖项:
sudo apt-get install libssl0.9.8
安装下载的libneon软件包。例如。对于64位架构:
dpkg -i libneon27_0.29.3-3_amd64.deb
添加
alias svn='LD_PRELOAD=/usr/lib/libneon.so.27 svn'
到您的.bashrc
,然后重新登录。