4

我在 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-在 svn 结帐时检测到错误/

这基本上是说因为 neon 现在正在使用 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但仍然无法通过密钥使用证书错误。有任何想法吗??

4

2 回答 2

4

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

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

可能的解决方法:

  1. 使用受信任的证书颁发机构签署证书(推荐)
  2. 使用 VisualSVN 服务器解决方法来生成证书而不指定“密钥用法”扩展名。有关详细说明,请参阅KB56
  3. 将 eclipse 配置为使用带有 OpenSSL 而不是 GnuTLS 的 Neon
于 2012-02-08T07:37:42.843 回答
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

于 2012-05-30T17:41:18.633 回答