svnコマンド実行時にエラーが発生する問題(サーバーのSSLのプロトコル古すぎ問題)

SVNリポジトリのサーバーが古い場合に出るエラーの対策についてです。 SVNリポジトリのサーバーを新しくするのが、本来の理想の解決策なのは百も承知をした上で、 仕方が無く低いバージョンのプロトコルで、問題を回避する方法です。(自己責任で)

エラー内容

bitnami@ip-???:~/work$ svn checkout https://example.com/sample/trunk/src src
svn: E170013: Unable to connect to a repository at URL 'https://example.com/sample/trunk/src'
svn: E120171: Error running context: An error occurred during SSL communication

SNVリポジトリのサーバーのSSLのバージョンが古いため、新しいクライアントからの接続ができなくなっているのが問題。

https://www.web-dev-qa-db-ja.com/ja/debian/subversion-error%EF%BC%9Asvn%EF%BC%9Ae120171%EF%BC%9A%E5%AE%9F%E8%A1%8C%E4%B8%AD%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%EF%BC%9Assl%E9%80%9A%E4%BF%A1%E4%B8%AD%E3%81%AB%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F/944604139/

 

回避策

クライアント側でopensslで使用するプロトコルの許容するバージョンを低く設定することでエラーを回避する方法です。

システムのopenssl.cnfをホームディレクトリにコピーします。

cp /usr/lib/ssl/openssl.cnf ~/

openssl.cnf の末尾を編集します。

[system_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT@SECLEVEL=1
#MinProtocol = TLSv1.2
#CipherString = DEFAULT@SECLEVEL=2

~/.bashrc の末尾に、以下を追加する。

export OPENSSL_CONF=~/openssl.cnf

ログインしなおせば、svnコマンドを実行できるようになる。

古いサーバのリプレイスを計画しましょう。

 

追記(WindowsのTortoiseSVNで同様のエラーが発生している場合)

SVNリポジトリのサーバーを新しくするのが、本来の理想の解決策なのは百も承知をした上で、 仕方が無く低いバージョンのプロトコルで、問題を回避する方法です。(自己責任で)

TortoiseSVN Files のページから取得した古いバージョンを使うと回避できるようです。(重ね重ね自己責任で)

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


The reCAPTCHA verification period has expired. Please reload the page.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください