月別アーカイブ
検索

先日、Subversion のリポジトリアクセスを SSL 対応にする手順を紹介しました。

SSL接続のみ許可する

さらに、/etc/apache2/conf.d/subversion.conf ファイルの記述に SSLRequireSSL の行を追加することで、

<Location /svn/[リポジトリ名]>
        DAV svn
        SVNPath /var/lib/svn/[リポジトリ名]
        AuthType Basic
        AuthName "Subversion Repositries"
        AuthUserFile /var/lib/svn/itpk/conf/.htpasswd
        Require valid-user
        SSLRequireSSL
</Location>

このリポジトリには、 Apache2 経由では SSL通信でしかアクセスできなくなります。

こうしておくことで、設定ミスで(または面倒だからという理由で)通常のHTTPで通信することがなくなるので、安全性が高まります。

Redmineからリポジトリへアクセス

ところで、Redmine では プロジェクトにリポジトリを対応付けられます。

とてもよくできた機構で、どのチケット(=Redmineでは1つの作業をチケットで管理する)のために、どのファイルのどこを変更したのかが分かるのです。

で、Redmineでこの機能を使うためには、プロジェクトの設定で リポジトリを指定する必要があります。

ところが、SSL通信を使って “https://…” を指定すると、Redmineからはリポジトリにアクセスできません。

どうも、SSL通信で失敗しているようです(正式な証明書を使用していないせいかもしれません)。

普通に “http://…” ならばアクセスできるのですが、Redmine のためだけに抜け道を用意するのは、躊躇(ためら)われます。

社員に何の悪気がなくても、その抜け道を使ってしまえば、悪意のある盗聴者に重要なファイルが漏れる恐れがあるからです。

解決策

解決策は非常に簡単でした。

Redmine に リポジトリ の設定をする際には、http 以外にも file や svn といったプロトコルを使って URL 指定をすることができます。

svn プロトコルは、svnserve というプロセスが動いていないといけないのですが、 file はファイルアクセスができればOKです。

我がITPKの社内サーバでは、Redmine が動いているマシンに、Subversion リポジトリの実体があるので、もちろんファイルアクセス可能です。

なので、 file:///var/lib/svn/[リポジトリ名]/ を指定することで、SSL通信だけに制限しても、Redmine からリポジトリアクセスできます。

もちろん、Redmine はローカルファイルアクセスをしているだけなので、盗聴の恐れもありません。

関係ありそうな記事

コメント