RedmineでSSL自己証明書Subversionリポジトリにアクセスする方法

ちょっとハマったのでまとめておく。

エラー内容

RedmineリポジトリSSL自己証明書Subversionリポジトリを指定
→404エラー
→こんなエラーメッセージがRedmineのログに

Processing RepositoriesController#show (for XXX.XXX.XXX.XXX at 2011-06-28 19:00:23) [GET]
  Parameters: {"action"=>"show", "id"=>"h-search", "controller"=>"repositories"}
Error parsing svn output: undefined method `name' for nil:NilClass
Output was:

対応策

  1. 自己証明書無視オプションをSubversionアダプタに付加
  2. 自己証明書無視オプションを有効にするため、subversionクライアントバージョンを1.6以上にする ※重要!当初1.4を使用していたためハマった。

具体例 (Cent5)

1. 自己証明書無視オプションを「lib/redmine/scm/adapters/subversion_adapter.rb 」に付加

●変更前
        ...
        def credentials_string
          str = ''
          str << " --username #{shell_quote(@login)}" unless @login.blank?
          str << " --password #{shell_quote(@password)}" unless @login.blank? || @password.blank?
          str << " --no-auth-cache --non-interactive"
          str
        end
        ...

●変更後
        ...
        def credentials_string
          str = ''
          str << " --username #{shell_quote(@login)}" unless @login.blank?
          str << " --password #{shell_quote(@password)}" unless @login.blank? || @password.blank?
          str << " --no-auth-cache --non-interactive --trust-server-cert"
          str
        end
        ...

2. Subversionクライアントバージョンを1.6にする。

# yum install subversion
# svn --version
svn, バージョン 1.6.11 (r934486)
....