2012-02-08 65 views
4

我在Ubuntu 11.10中使用Eclipse(Indigo)和subclipse 3.6。“证书中的密钥使用违规”错误与Subversion,VisualSVN服务器

我已经连接到svn与其他机器上的subclipse没有问题,但与我最近升级的Ubuntu机器(从11.04到11.10),它不会工作。

,当我尝试连接到我的私人SVN服务器(VisualSVN服务器在Windows),我收到以下错误:

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 

因此,GOOGLE了它,并发现此解决方案: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

见http://www.visualsvn.com/support/topic/00056/。 – bahrep 2012-10-11 10:29:21

+0

http://www.gnutls.org/faq.html#key-usage-violation – Nikos 2015-08-13 09:18:16

回答

4

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

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

可能的解决方法:使用受信任的证书颁发机构(推荐)

  • 使用VisualSVN服务器解决方法,以产生一个cerificate不指定“密钥用法”扩展

    1. 注册证书。有关详细说明,请参阅KB56
    2. 配置Eclipse使用霓虹灯使用OpenSSL代替的GnuTLS
  • +0

    很好的总结,它只是一个个人svn,所以我不想打扰签署证书,因为它并不是必需的马上我想我会等到Visual SVN 2.5.3再搞乱Neon更多..谢谢! – Boccobrock 2012-02-10 00:05:33

    +0

    @Boccobrock我已经更新了我的答案,并链接到知识库文章。 – 2012-02-24 08:19:34

    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,并重新登录。

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