redmineでSubversionリポジトリにhttpsでアクセスする | 成長の果実

成長の果実

不完全でも良いから前に進む。

[前提]
環境: CentOS 5.5 x86

あと、前回の記事の

LinuxでRedmineを簡単に構築する
http://ameblo.jp/welx/entry-11013620677.html

で準備した環境にて説明していく。

---------- 以下、記事 ----------


redmineにはSubversionのリポジトリにアクセスできる機能がある。


各プロジェクトの [設定] - [リポジトリ] から設定が可能。

$成長の果実-redmine_svn_https


指定できるURLの種類には、file:///, http://, https://, svn://, etc...

とあり様々なものが指定可能だが、通信内容は暗号化しておきたいから http:// はあまり使いたくないだろうし、file:/// に関してはリポジトリがredmineと同一サーバにないと使えないので、よく使うものはおそらく https:// ではないかと思う。


https:// でも問題なく使えるが、一つ問題がある。



自己発行したSSL証明書を使用している場合、エラーでリポジトリにアクセスできない。



つまり、ベリサイン等で発行して貰った証明書ではなく、いわゆるオレオレ証明書で https:// を使っている場合はダメってこと。


自己発行の証明書を使用した https:// でリポジトリにアクセスするとこんなエラーが表示される。

$成長の果実-redmine_svn_https4


ログファイルには以下のような証明書エラーのメッセージが出力されてる・・・


svn: OPTIONS of 'https://xxx.xx.xxx/svn/project01': Server certificate verification failed: issuer is not trusted (https://xxx.xx.xxx)



うーん、自己発行証明書でも使えるようにしててよー・・・と思いながら解決策を色々調べたところ、下記のサイトを発見!


RedmineでSSL自己証明書Subversionリポジトリにアクセスする方法 - TrinityT’s LABO
http://d.hatena.ne.jp/TrinityT/20110628/1309256491



そして上記サイトの通りにやったら解決!!

本当にありがたいです。


つまり二番煎じだけど、今後また同じエラーにぶつかると思うので自分のための備忘録にここに残しておこうかなと・・・


ほんとうに上記サイトの通りだけど、いちおうやり方を書いておこう(メモ的な意味で)。

# cd /opt/redmine-1.2.1-1/apps/redmine/lib/redmine/scm/adapters

# pwd
/opt/redmine-1.2.1-1/apps/redmine/lib/redmine/scm/adapters

# vi subversion_adapter.rb
259~263行目
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

# /opt/redmine-1.2.1-1/ctlscript.sh restart ← redmineを再起動する




以上、これだけ。


バージョンアップの度にやるのが面倒とか思うかもしれないけど、たったこれだけなら別段問題ないと思う。

他のサイトに見受けられる方法のほうが面倒のような気もするし・・・



ということで、redmineから https:// でリポジトリにアクセスできるか確認。


設定して・・・
成長の果実-redmine_svn_https2

    

確認!
成長の果実-redmine_svn_https3



httpsだからかレスポンスが遅い気もするけど、仕方がない。


これでバッチリということで。