svnコマンド実行時にエラーが発生する問題(サーバーのSSLのプロトコル古すぎ問題)
2022/12/01
2024/04/11
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のバージョンが古いため、新しいクライアントからの接続ができなくなっているのが問題。
回避策
クライアント側で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 のページから取得した古いバージョンを使うと回避できるようです。(重ね重ね自己責任で)