Subversion,VisualSVN Server中的“证书中的密钥用法违规”错误

时间:2012-02-08 06:23:43

标签: eclipse svn ssl-certificate visualsvn-server gnutls

我在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找到的说明操作,但仍然无法通过密钥使用证书错误。任何想法??

2 个答案:

答案 0 :(得分:4)

在初始设置期间,VisualSVN Server 2.5会生成自签名证书,并将其添加到本地计算机上的“受信任的根证书颁发机构”存储中。为避免可能的安全问题,VisualSVN Server使此自签名证书仅对服务器身份验证有效(通过指定“密钥用法”扩展名)。

针对GnuTLS构建的Subversion客户端无法识别此类证书,并且会发生错误。

可能的解决方法:

  1. 使用受信任的证书颁发机构签名证书(推荐)
  2. 使用VisualSVN Server变通方法生成证书而不指定“密钥用法”扩展名。有关详细说明,请参阅KB56
  3. 配置eclipse以使用Neon和OpenSSL而不是GnuTLS

答案 1 :(得分:1)

或者你可以添加

alias svn='LD_PRELOAD=/usr/lib/libneon.so.27 svn'

.bashrc,因此只有svn命令会受到libneon更改的影响,而不会影响其他软件包。另外请注意,链接中提到的解决方案将在Ubuntu 12.04 LTS下中断。为此,您必须使用以下步骤:

  1. 卸载当前的libneon包:

    sudo apt-get remove libneon27
    
  2. http://packages.debian.org/squeeze/libneon27下载最新的libneon软件包(在底部,您可以为您的架构选择正确的版本)。

  3. 安装所需的libssl依赖项:

    sudo apt-get install libssl0.9.8
    
  4. 安装下载的libneon软件包。例如。对于64位架构:

    dpkg -i libneon27_0.29.3-3_amd64.deb
    
  5. 添加

    alias svn='LD_PRELOAD=/usr/lib/libneon.so.27 svn'
    

    到您的.bashrc,然后重新登录。

  6. 来源:http://www.yeap.de/blog2.0/archives/260-Subversion-Certificate-Problems-with-Ubuntu-Precise-Pangolin.html