Ubuntu Weekly Recipe

第41回 クライアント・サーバ環境の活用(2)

この記事を読むのに必要な時間:およそ 4 分

この状態でFirefoxでhttp://localhost/trac を開くと,図3のような画面が,そしてリンクをたどると図4のような画面が表示されるようになっているはずです。ただし,このままではチケットを作成したり,Wikiページとして利用することはできません。

図3 /tracのトップページ

図3 /tracのトップページ

図4 Tracの画面

図4 Tracの画面

ちょっとした利用だけであれば,以下のようにguest(Anonymous)ユーザにチケットやWikiの作成・編集権限を与えてしまう,という手もあります。ただし,この方法は誰でも書き込めてしまいますし,チケットの所有者が「Anonymous」となってしまい,あまりきれいではありません。

※本文にもある通り,この手順では誰でも書き込めるようになります。それでも問題ない場合のみ利用してください。通常は本文の先にある,HTTPS+BASIC認証による認証を行うようにします。

$ sudo trac-admin /srv/trac/gihyo
Trac [/srv/trac/gihyo]> permission add anonymous TICKET_CREATE  TICKET_MODIFY WIKI_CREATE WIKI_MODIFY

そこで,ここではApache2でhttpsを利用できる状態にした上で,さらに個別のユーザ認証が行えるようにしてみましょう。SSLを利用するには証明書が必要です。次のコマンドを用いることで,いわゆる「おれおれ証明書」を作成し,Webサーバに導入することができます。

$ sudo make-ssl-cert generate-default-snakeoil
$ sudo a2ensite default-ssl
$ sudo /etc/init.d/apache2 reload

さらに,証明書のフィンガープリント情報を得るため,次のコマンドを入力します。

$ openssl x509 -in /etc/ssl/certs/ssl-cert-snakeoil.pem -fingerprint -sha1 -noout
$ openssl x509 -in /etc/ssl/certs/ssl-cert-snakeoil.pem -fingerprint -md5 -noou

この状態でhttps://localhost/tracへアクセスすると,図5のような警告が表示されます。

図5 Firefoxでアクセスした際に表示される警告

図5 Firefoxでアクセスした際に表示される警告

ここでは証明書のフィンガープリントを用いてサイトが正しいことを確認できますので「例外を追加」を押して「証明書の取得」を行います。

証明書のフィンガープリントを確認できますので,先ほど出力したものと完全に一致するかを確認し,例外を承認してください。これにより,以降はブラウザがフィンガープリントの一致を確認してくれますので,問題なくアクセスできるようになります。フィンガープリントの一致確認は,Tracを利用するマシンごと・ユーザごとに行う必要があります。

ここまでの準備ができたら,Tracにアクセスできるユーザを作成します。ここではfyoshidaというユーザを作成していますが,適宜読み替えてください。

$ sudo htpasswd -c /etc/apache2/.htpasswd fyoshida
New password: (Tracへのアクセスに使いたいパスワードをセット)
Re-type new password: (Tracへのアクセスに使いたいパスワードを再入力)
Adding password for user fyoshida

さらに,/etc/apache2/sites-available/tracの中身を,以下のものに変更します。

<Location /trac>
    SetHandler mod_python
    PythonInterpreter main_interpreter
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir /srv/trac
    PythonOption TracUriRoot /trac
    PythonOption PYTHON_EGG_CACHE /tmp
    AuthType Basic
    AuthName "Trac User Auth"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
</Location>

変更を反映するためにApache2をリロードします。

$ sudo /etc/init.d/apache2 reload

この状態でhttps://localhost/tracへアクセスすると,ユーザ認証が要求されるようになります。設定したユーザ名とパスワードでログインすることで,チケットの作成やWikiページの作成・編集が行えるようになります。

著者プロフィール

吉田史(よしだふみひと)

Ubuntu Japanese Team Member株式会社創夢所属。システム管理を中心にWindows/PC Unixを併用している。Ubuntu Japanese Teamではパッケージサーバの管理や翻訳などの作業を担当。