【问题标题】:"Key usage violation in certificate" error with Subversion, VisualSVN ServerSubversion、VisualSVN 服务器出现“证书中的密钥使用违规”错误
【发布时间】:2012-02-29 14:48:20
【问题描述】:

我在 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/

这基本上是说因为 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 找到的说明运行,但仍然无法克服密钥使用证书错误。有什么想法吗??

【问题讨论】:

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


【解决方案1】:

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

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

可能的解决方法:

  1. 使用受信任的证书颁发机构签署证书(推荐)
  2. 使用 VisualSVN 服务器解决方法来生成证书而不指定“密钥使用”扩展名。有关详细说明,请参阅 KB56
  3. 将 eclipse 配置为使用带有 OpenSSL 而不是 GnuTLS 的 Neon

【讨论】:

  • 很好的总结,它只是一个个人 svn,所以我不想费心签署证书,而且因为它不是立即工作的必要条件,我想我会等到 Visual SVN 2.5.3在与霓虹灯混在一起之前......谢谢!
【解决方案2】:

或者你可以添加

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2017-08-18
    • 1970-01-01
    • 2012-02-02
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多