Home 技術関連情報 Software WindowsのSubVersionをSSLで公開する手順
WindowsのSubVersionをSSLで公開する手順 PDF 印刷 Eメール
作者 熊川 勝   
2008年05月 20日(火曜日) 16:38
記事索引
WindowsのSubVersionをSSLで公開する手順
ApacheのSetup
SubVersionのSetup
SVNの設定と動作確認
SVNの利用準備
Apacheの設定
ApacheでSSLを利用
SSL経由でSVNを利用
全てのページ

●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 32 Bit Windows版

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のセットアップ手順を説明します。 

  • ダウロードしたapache_2.0.63-win32-x86-openssl-0.9.7m.msiをダブルクリックし、セットアップを開始します

すると、下記の様な画面が表示されますので、「Next >」をクリックします

 

  •  次にApacheのライセンスに関する内容が表示されます

内容に問題が無ければ「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を日本語に変更します。それにはまず、どこかのフォルダを選択肢し、右クリックをします

 

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

 

  • 「Setting」を選択すると、TortoiseSVNの設定画面が表示されるので、「General」の「TortoiseSVN」にある「Language」を「日本語」に変更し、「OK」をクリックします。

※設定画面は閉じて開くまで日本語表示になりません。

 

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

 

  • 設定画面も日本語になっていれば問題ありません。


● SubVersionの設定

Apache経由で利用できる様にする前に、まずはSubVersionを利用可能にします。

  •  まずはSVNのリポジトリを準備します

ここでは、リポジトリを「C:\SVN」に作成します。フォルダを選択し、右クリックでコンテキストメニューを表示します

表示されたコンテキストメニューの「TortoiseSVN」の「ここにリポジトリを作成」を選択します

 

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

 

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

 

  • リポジトリが出来ているかを確認します。

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

 

  • svnserve.confの設定を行う

作成したリポジトリの中(ここでは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

 

  • passwdファイルの設定を行う

作成したリポジトリの中(ここではC:\SVN\の中)にあるconfディレクトリを開きます

この中の「passwd」というファイルがあるので、このファイルを編集します。この設定を行う事で、SVNへのログインユーザー/パスワードを指定する事ができます

[users]

# harry = harryssecret

# sally = sallyssecret 

user=passwordの形でここへ記入を行います

ここからの説明は、下記の設定で進めて行きます

[users]

harry = harryssecret

# sally = sallyssecret

 

● SubVersionの設定を確認する

この時点で一度、設定の内容を確認します

  • 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経由で利用できる様にするための設定を行います

  • 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の設定を行う

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が起動中の場合は、一旦停止して再起動します。もし起動して居ない場合は、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」が出来ていれば成功です

 

  • CSRの作成

秘密鍵と同様に「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」が出来ていれば成功です

 

  • 「ssl.conf」ファイルの修正

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」

 

  • 「httpd.conf」ファイルの修正

Apacheの設定ファイル「httpd.conf」の設定を行います

この「httpd.conf」の中にある下記の部分を修正します

「#LoadModule ssl_module modules/mod_ssl.so」を「LoadModule ssl_module modules/mod_ssl.so」

 

  • ApacheのSSLを有効にする

この段階では、まだSSLが有効になっておらずApacheの起動パラメータを修正する必要がある

一番簡単な修正方法は、サービスより「Apache2」のプロパティを開き、開始パラメータに「-D SSL」と入力する

 


● SSL経由でのSVNアクセス

ここまでで、とりあえずの設定はできているはずなので、SSL経由でも繋がるかの確認をします

  • ブラウザにて確認する

ブラウザにて、「https://localhost/svn」へ接続します

HTTPの時と同様に接続できればOKです

  •  「TotoiseSVN」の中の「リポジトリブラウザ」を利用して、接続の確認をする

SVNの確認の時には、「svn://localhost/svn」と入れましたが、これを「https://localhost/svn」に変更して開いてみます

結果、「svn://localhost/svn」と同じに開けたら、Apache経由での接続が可能となっています

 

● 最後に

この方法でとりあえず使用する事はできますが、実際に運用するには、セキュリティ面など非常に危ういので、各設定を見直して下さい

 

LAST_UPDATED2
 
HSB WebSite - フリーITエンジニア 熊川のWebSite -, Powered by Joomla! and designed by SiteGround web hosting