●WindowsのSubVersionをSSLで公開する手順について紹介しますここでは、ApacheのSSLを利用して、SubVersionを公開する手段について紹介しています。 また、Linux側の情報などは多くあるので、ここではWindows版での解説を行います。 今回の環境 - Windows XP Professional SP2
- Apache 2.0.63 Binary including OpenSSL 0.9.7 Windows版
- SubVersion 1.4.6 packages built against Apache 2.0 Windows版
- TortoiseSVN 1.4.8 32Bit Windows版 + 日本語 Language pack
必要なファイルを入手する - Apache 2.0.63 Binary including OpenSSL 0.9.7 Windows版
ApacheはJapan Apache Users Group(http://www.apache.jp/)よりダウンロード可能です。 今回はWindowsに入れるのを目的としている為、「apache_2.0.63-win32-x86-openssl-0.9.7m.msi」というバイナリパッケージを利用します。
- SubVersion 1.4.6 packages built against Apache 2.0 Windows版
SubVersionはSubversion project(http://subversion.tigris.org/)よりダウンロード可能です。 Apache同様、今回はWindowsに入れるのを目的としている為、「Win32 packages built against Apache 2.0」と書かれている所の「svn-1.4.6-setup.exe」というバイナリパッケージを利用します。 また、今回はApache 2.0系を利用している為、SubVersionもApache 2.0系の物を利用しています。
TortoiseSVNはTortoiseSVN project(http://tortoisesvn.tigris.org/)よりダウンロード可能です。 TortoiseSVNはWindows GUIのツールなので、Windows版しかありません。今回は32BitのWndows環境を利用している為、32Bit版の「TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi」というバイナリパッケージを利用します。 また、ダウンロードページにLanguage packsというものがありますので、そちらのJapaneseの32Bit版を選択し、「LanguagePack-1.4.8.12137-win32-ja.exe」というバイナリパッケージを利用します。
● Apache 2.0.63 Binary including OpenSSL 0.9.7 Windows版のセットアップまずは、Apacheのセットアップ手順を説明します。 すると、下記の様な画面が表示されますので、「Next >」をクリックします

内容に問題が無ければ「I accept the terms in the license agreement」を選択し、「Next >」をクリックします

内容に問題が無ければ、「Next >」をクリックします 
● Network Domainには、自分のドメインを入力します ● Server Nameには、このApacheをセットアップしているServerの名前を入力します ● Administrator's Email Addressには、管理者のメールアドレスを入力します なお、これらの項目は後で変更できるので、適当に入れても問題ありません 特に問題が無ければ、「for All Users」を選択して、「Next >」をクリックします 
- 次にSetup Typeの選択画面が表示されますが、特に問題が無ければ、そのまま「Typical」を選択して、「Next >」をクリックします

- 次にセットアップ先のフォルダ選択画面が表示されますが、特に問題が無ければ、そのまま「Next >」をクリックします

- 次にインストールを開始しますという画面が表示されますので、特に問題が無ければ、そのまま「Install」をクリックします

- しばらく、ファイルをコピーしているダイアログが表示され、その後に下記の画面が表示されれば、セットアップ完了です

Apacheはセットアップを行うと、とりあえずデフォルトの設定のまま起動しています そこで、Internet Explorerなど、WebBrowserを起動し、「http://localhost」にアクセスします その結果、下記の内容が表示されれば、Apacheのセットアップは完了です(※設定は必要です) 
● SubVersion 1.4.6 packages built against Apache 2.0 Windows版のセットアップ 次にSubVersion 1.4.6 packages built against Apache 2.0 Windows版をセットアップします - ダウンロードしたsvn-1.4.6-setup.exeをダブルクリックし、セットアップを開始します。
すると、下記の様な画面が表示されますので、「はい(Y)」をクリックします 
- 次にようこその画面が表示されますので、そのまま「Next >」をクリックします

- 次にインフォメーションの画面が表示されますので、内容に特に問題が無ければ、そのまま「Next >」をクリックします

- 次にセットアップ先のフォルダ選択画面が表示されますが、特に問題が無ければ、そのまま「Next >」をクリックします

- 次にスタートメニューへの登録先が表示されますのが、特に問題が無ければ、そのまま「Next >」をクリックします

- 次にアイコンの作成とApacheのモジュール作成の選択画面が表示されます
ここの「Apache Module」の部分のチェックをつけたまま、「Next >」をクリックします

- 次にインストールを開始しますという画面が表示されますので、特に問題が無ければ、そのまま「Install」をクリックします

セットアップの結果などが表示されていますので、特に問題が無ければ、そのまま「Next >」をクリックします


● TortoiseSVN 1.4.8 32Bit Windows版のセットアップ 次にTortoiseSVN 1.4.8 32Bit Windows版をセットアップします - ダウンロードしたTortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msiをダブルクリックし、セットアップを開始します。
すると、下記の様な画面が表示されますので、「Next >」をクリックします

- 次にTortoiseSVNのライセンスに関する内容が表示されます
内容に問題が無ければ「I accept the terms in the license Agreement」を選択し、「Next >」をクリックします

- 次にセットアップsるうモジュールとセットアップ先のフォルダ選択画面が表示されます。特に問題が無ければ、そのまま「Next >」をクリックします

- 次にインストールを開始しますという画面が表示されますので、特に問題が無ければ、そのまま「Install」をクリックします

- しばらく、ファイルをコピーしているダイアログが表示され、その後に下記の画面が表示されれば、セットアップ完了です

- セットアップ終了後に下記の画面が表示される事があります。「Yes」をクリックするとWindowsが再起動しますので、準備が出来てからWindowsを再起動をします。

● TortoiseSVN 1.4.8 32Bit Windows版 日本語の言語パックのセットアップ 次にTortoiseSVN 1.4.8 32Bit Windows版の日本語の言語パックをセットアップします - ダウンロードしたLanguagePack-1.4.8.12137-win32-ja.exeをダブルクリックし、セットアップを開始します。
すると、下記の様な画面が表示されますので、「インストール」をクリックします

- しばらく、ファイルをコピーしているダイアログが表示され、その後に下記の画面が表示されれば、セットアップ完了です

● TortoiseSVNを日本語表示に変更する
- 右クリックをしてコンテキストメニューを表示すると、「TortoiseSVN」が追加されているので、その中の「Setting」を選択します

- 「Setting」を選択すると、TortoiseSVNの設定画面が表示されるので、「General」の「TortoiseSVN」にある「Language」を「日本語」に変更し、「OK」をクリックします。
※設定画面は閉じて開くまで日本語表示になりません。

- 日本語設定になったかを確認する為、再度右クリックをしてコンテキストメニューを表示します。日本語化されると、このメニューも日本語になっています。


● SubVersionの設定Apache経由で利用できる様にする前に、まずはSubVersionを利用可能にします。 ここでは、リポジトリを「C:\SVN」に作成します。フォルダを選択し、右クリックでコンテキストメニューを表示します 表示されたコンテキストメニューの「TortoiseSVN」の「ここにリポジトリを作成」を選択します

- まず、リポジトリのデータ格納形式を選択します。特に問題が無ければ、そのまま「OK」をクリックします

- 下記の画面が表示されれば、リポジトリの作成終了となります

リポジトリを作成したフォルダを開き、下記の様なフォルダやファイルが作成されていれば、正常に作成されています。

作成したリポジトリの中(ここではC:\SVN\の中)にあるconfディレクトリを開きます この中の「svnserve.conf」というファイルがあるので、このファイルを編集します。この設定を行う事で、SVNへ接続する人に認証が必要なのか、アクセス権をどうするかなどが設定できます [general] # anon-access = read # auth-access = write # password-db = passwd # authz-db = authz # realm = My First Repository ファイルの中にあるコメント(頭の#)を必要に応じて取り除きます ここからの説明は、下記の設定で進めて行きます [general] anon-access = none auth-access = write password-db = passwd # authz-db = authz # realm = My First Repository
作成したリポジトリの中(ここではC:\SVN\の中)にあるconfディレクトリを開きます
この中の「passwd」というファイルがあるので、このファイルを編集します。この設定を行う事で、SVNへのログインユーザー/パスワードを指定する事ができます [users] # harry = harryssecret # sally = sallyssecret user=passwordの形でここへ記入を行います ここからの説明は、下記の設定で進めて行きます [users] harry = harryssecret # sally = sallyssecret
● SubVersionの設定を確認するこの時点で一度、設定の内容を確認します ファイル名を指定して実行から「"C:\Program Files\Subversion\bin\svnserve.exe" -d」を実行します
デスクトップなどを右クリックし、「TotoiseSVN」の中の「リポジトリブラウザ」を選択します

- URLの入力を求められるので、「svn://localhost/svn」(実際の環境にあわせてください)と入力し、「OK」をクリックします

- 設定がうまく行っていると、ユーザー名とパスワードが要求されます
passwdファイルに記述したユーザー名とパスワードを入力します。また認証を保存するをチェックして、「OK」をクリックします

- この画面まで進めばとりあえず設定は成功してると思われます

表示されている「svn://localhost/svn」を右クリックします。表示されたコンテキストメニューの中から「フォルダを作成」を選択します

- すると、作成するフォルダの名前の入力を求められるので、フォルダ名を入力して「OK」をクリックします

- 次にログメッセージの入力を求められますが、そのまま「OK」をクリックします

- フォルダが無事に作成されれば、書き込み権限は無事に設定されていることになります

● Apacheの設定 SVNをApache経由で利用できる様にするための設定を行います SVNをセットアップを行ったフォルダ(ここではC:\Program Files\SubVersion)の中にある「bin」フォルダを参照します その中に、「mod_authz_svn.so」と「mod_dav_svn.so」というファイルがあります。これをApacheのフォルダにコピーします コピー先は、Apacheをセットアップしたフォルダ(ここではC:\Program Files\Apache Group\Apache2)の中にある「modules」というフォルダの中にコピーします
- Apache経由でのアクセス用に認証のファイルを作成する
Apache経由でアクセスするにあたり2つのファイルを用意します
● 認証用ユーザー/パスワードのファイル
このファイルは、Apacheについている「htpasswd.exe」を利用すると簡単ですので、これを利用します 「htpasswd.exe」は、Apacheをセットアップしたフォルダの中にある「bin」というフォルダに入っています ここでは、認証用ユーザー/パスワードのファイルを「C:\SVN\conf\svn_apache_users」にし、「harry」というユーザーを作成します ファイル名を指定して実行から「"C:\Program Files\Apache Group\Apache2\bin\htpasswd.exe" -c "C:\SVN\conf\svn_apache_users" harry」を実行します このコマンドを実行後、パスワードの入力を求められるので、パスワードを入力します 2人目以降のユーザーも同じくhtpasswdで作成するのですが、2回目以降は、「-c」を削除して実行してください
● アクセス権限のファイル
このファイルは、Apache経由でログインしたユーザーのアクセス権限(読み取り、書き込みなど)を設定します ここでは、アクセス権限のファイルを「C:\SVN\conf\svn_apache_access」で作成します ファイルの内容は、下記の様にします [/] harry=rw
Apacheの設定ファイル「httpd.conf」の設定を行います httpd.confファイルは、Apacheをセットアップしたフォルダの中にある「conf」というフォルダにあります このhttpd.confの一番下に、下記の内容を入力します <Location /svn> DAV svn SVNPath "C:/SVN" AuthType Basic AuthName "SSLでSubVersion Repository" Require valid-user AuthUserFile "C:/SVN/conf/svn_apache_users" AuthzSVNAccessFile "C:/SVN/conf/svn_apache_access" </Location>
Apacheが起動中の場合は、一旦停止して再起動します。もし起動して居ない場合は、Apacheを起動します まずはInternet ExplorerなどのWebブラウザでアクセスしてみます ブラウザを開き、「http://localhost/svn」を入力して開いてみます。認証の画面が出てくると思います もし認証の画面が表示されない場合は設定に誤りがあるので、設定を見直して下さい ここの認証に入れるユーザー名/パスワードは、「svn_apache_users」に入力したユーザー/パスワードを入力します その結果、SVNの内容が表示されれば成功です 次に、「TotoiseSVN」の中の「リポジトリブラウザ」を利用して、接続の確認を行います SVNの確認の時には、「svn://localhost/svn」と入れましたが、これを「http://localhost/svn」に変更して開いてみます 結果、「svn://localhost/svn」と同じに開けたら、Apache経由での接続が可能となっています
● ApacheにSSLの設定を行うここまでで、HTTP経由のアクセスは可能となりました。しかしHTTP経由では送信内容が丸見えになってしまう為、使用用途によっては問題があります そこで、SSL経由でアクセスする様に修正し、通信内容を暗号化します これらの作業は、Apacheに付属している「openssl.exe」を利用して行います 「openssl.exe」は、Apacheをセットアップしたフォルダの中にある「bin」というフォルダに入っています 今回作成する秘密鍵のファイル名は「server.key」にし、Apacheをセットアップしたフォルダの中にある「conf」というフォルダの中に作成します ファイル名を指定して実行から「"C:\Program Files\Apache Group\Apache2\bin\openssl.exe" genrsa -out "C:\Program Files\Apache Group\Apache2\conf\server.key"」を実行します
「conf」フォルダの中に「server.key」が出来ていれば成功です
秘密鍵と同様に「openssl.exe」を利用します 今回作成するCSRのファイル名は「server.csr」にし、Apacheをセットアップしたフォルダの中にある「conf」というフォルダの中に作成します
ファイル名を指定して実行から「""C:\Program Files\Apache Group\Apache2\bin\openssl.exe" req -new -key "C:\Program Files\Apache Group\Apache2\conf\server.key" -out "C:\Program Files\Apache Group\Apache2\conf\server.csr" -config "C:\Program Files\Apache Group\Apache2\conf\openssl.cnf""」を実行します この時、下記の様な内容の入力を求められますが、ここでの説明は割愛します(全てそのままEnterを押しても先に進みます) Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []: Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: 「conf」フォルダの中に「server.csr」が出来ていれば成功です
秘密鍵と同様に「openssl.exe」を利用します 今回作成する証明書のファイル名は「server.crt」にし、Apacheをセットアップしたフォルダの中にある「conf」というフォルダの中に作成します
ファイル名を指定して実行から「"C:\Program Files\Apache Group\Apache2\bin\openssl.exe" x509 -in "C:\Program Files\Apache Group\Apache2\conf\server.csr" -req -signkey "C:\Program Files\Apache Group\Apache2\conf\server.key" -out "C:\Program Files\Apache Group\Apache2\conf\server.crt"」を実行します 「conf」フォルダの中に「server.crt」が出来ていれば成功です
Apacheの設定ファイル「ssl.conf」の設定を行います 「ssl.conf」ファイルは、Apacheをセットアップしたフォルダの中にある「conf」というフォルダにあります この「ssl.conf」の中にある下記の部分を修正します 「SSLCertificateFile conf/ssl.crt/server.crt」を「SSLCertificateFile conf/server.crt」
「SSLCertificateKeyFile conf/ssl.key/server.key」を「SSLCertificateKeyFile conf/server.key」
Apacheの設定ファイル「httpd.conf」の設定を行います この「httpd.conf」の中にある下記の部分を修正します 「#LoadModule ssl_module modules/mod_ssl.so」を「LoadModule ssl_module modules/mod_ssl.so」
この段階では、まだSSLが有効になっておらずApacheの起動パラメータを修正する必要がある 一番簡単な修正方法は、サービスより「Apache2」のプロパティを開き、開始パラメータに「-D SSL」と入力する

● SSL経由でのSVNアクセスここまでで、とりあえずの設定はできているはずなので、SSL経由でも繋がるかの確認をします ブラウザにて、「https://localhost/svn」へ接続します HTTPの時と同様に接続できればOKです
SVNの確認の時には、「svn://localhost/svn」と入れましたが、これを「https://localhost/svn」に変更して開いてみます
結果、「svn://localhost/svn」と同じに開けたら、Apache経由での接続が可能となっています
● 最後にこの方法でとりあえず使用する事はできますが、実際に運用するには、セキュリティ面など非常に危ういので、各設定を見直して下さい
|