apacheダイジェスト認証設定
さくらVPSに個人用git環境とレポジトリを作成。
ついでにgitwebの導入をしたけども、公開するのも恥ずかしい。
てか公開するなら最初からgithubを使います。
gitwebとかっこいい名前はついてても、所詮はCGI。
ということでapacheの認証だけ行うことにした。
環境はDebian 6です。
今回は、basic認証ではなくdigest認証。
basic認証は平文でパスワードを送ってるから危ないとか何とからしいので。
設定ファイル編集
まずは、gitwebの設定ファイルを確認
$ dpkg -l | grep gitweb ii gitweb 1:1.7.2.5-3 fast, scalable, distributed revision control system (web interface) $ ls -la /etc/apache2/conf.d/gitweb
次に中身の編集
<Directory /usr/share/gitweb> Options FollowSymLinks +ExecCGI AddHandler cgi-script .cgi # ここから追記分 AllowOverride None ← 書かなくていいと思う AuthType Digest ← ダイジェスト認証使う AuthName "gitweb" ← 認証名 名前は自由 AuthUserFile /etc/apache2/.htdigest ← 認証ユーザが記載されたファイル あとで作る Require valid-user ← AuthUserFileで指定した人のみにアクセス制限 </Directory>
ユーザの追加
AuthUserFileの作成とユーザの追加をする
$ cd /etc/apache2 $ sudo htdigest -c .htdigest "gitweb" akihiro_ob Adding password for akihiro_ob in realm gitweb. New password: Re-type new password: $ ls /etc/apache2/.htdigest /etc/apache2/.htdigest
これで勝手に作成と追加されました!
ちなみに-cオプションは最初のみ。
追加する際は不要です。
$ sudo htdigest .htdigest "gitweb" testuser Adding user testuser in realm gitweb New password: Re-type new password: $ cat .htdigest| grep -n testuser 2:testuser:gitweb:05bae855755924538c87393873116b01
消すときはファイルから一行削除するだけ。
モジュール設定
設定というか、使う使わないの話。
何もしてなければbasic認証が動いているので無効にする。
その後、ダイジェスト認証モジュールを有効にする。
最後にapacheの再起動。
$ sudo a2dismod auth_basic $ sudo a2enmod auth_digest $ sudo /etc/init.d/apache2 restart
あとは、gitwebにアクセスするのみ!
参考
Apache2でDIGEST認証を使う
http://uturo1.nevernothing.jp/apache2digest/