9

しばらく使用していたSVNサーバーにアクセスしようとしていますが、次のエラーが発生します。

SSLハンドシェイクに失敗しました:SSLエラー:TLS警告アラートを受信しました。

以前にサーバーにアクセスしたことがない他のマシン(これはすべてCentOSで実行されています)では、(R)eject、accept(t)emporically、またはaccept(p)ermanently?提供された証明書のオプションを選択すると、正常に接続できます。私の結論は、古い証明書がキ​​ャッシュされており、新しい証明書を取得する必要があるということですが、それをクリアする方法を見つけることができず、svnの実行時にこのプロンプトをもう一度受け取ります。

これに似た問題をたくさん読んだので、.subversionフォルダーをクリア/削除しましたが、それでも証明書についてのプロンプトが表示されず、上記のエラーで失敗し続けます。何か案は?

4

2 に答える 2

8

この問題が発生している CentOS のバージョンを指定していません。

EL 6 に付属するサブバージョンは、OpenSSL にリンクされていた古いリリースからの変更である GnuTLS にリンクされています。

ldd を使用してこれをテストできます。

$ ldd /usr/bin/svn | grep ssl
$ ldd /usr/bin/svn | grep tls
        libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0x0030f000)
$

GnuTLS ライブラリは、場合によってはより特殊です。最も一般的なものは次の 2 つです。

  1. リモート サイトは、DES のような弱い暗号を使用します。
  2. リモート サイトには、指定した名前と一致しない名前を持つ証明書があります。

名前が一致しない場合は、名前の代わりに IP アドレスを使用して問題を回避できます。ホストが foo.com で、IP アドレスが 1.2.3.4 の場合、次の行に沿って何かを試すことができます。

svn switch --relocate https://foo.com/my-repo-name https://1.2.3.4/my-repo-name

ソース コードから Subversion をビルドし、構成で gnutls の代わりに openssl を使用することもできます。

于 2012-09-06T20:16:54.803 に答える