WebDAV+SSL+Basic認証の導入
既にネット上に資料が氾濫してますが、なかなか忘れやすいのでメモ。
一度導入した事があるはずなのに数時間も掛かってしまった。
Apache2のインストール、必要なモジュールのインストール、
ここら辺は楽
sudo apt-get install apache2 sudo a2enmod ssl sudo a2enmod dav sudo a2enmod dav_fs
OpenSSLで認証局、秘密鍵、認証公開鍵、ブラウザ登録用証明書の作成
http://d.hatena.ne.jp/rudeboyjet/20070124/p1
コレは↑のサイトを参考にさせてもらいました
Common Nameへの入れ忘れが無ければ手順どおりに作れるとおもいます。
必要なのはprivate/cakey.pem(秘密鍵)とcacert.crt(認証公開鍵)
sudo mkdir -p /etc/apache2/ssl/private sudo cp demoCA/cacert.crt /etc/apache2/ssl/ sudo cp demoCA/private/cakey.pem /etc/apache2/ssl/private/
ベーシック認証用ユーザの作成
初回登録時は↓
sudo htpasswd -c /etc/apache2/.htpasswd user1
2回目からは追加なので↓でOK
sudo htpasswd /etc/apache2/.htpasswd user2
DAV用サイト設定
まずはDAV用のディレクトリを作る
sudo mkdir /var/wwwdavssl sudo chown -R www-data.www-data /var/wwwdavssl
sudo vi /etc/apache2/sites-available/ssl
ここが一番メンドクサイです
http://d.hatena.ne.jp/atasatamatara/20090406/1238989103
ここの「apacheでSSLを組み込む」のところをベースに
DAV+ベーシック認証の仕組みを組み込む
http://www.aise.ics.saitama-u.ac.jp/~gotoh/DebianLenny.html
つもりでやりました。で結局
cat /etc/apache2/sites-available/sslDocumentRoot /var/wwwdavssl ErrorLog "/var/log/apache2/error_log" TransferLog "/var/log/apache2/access_log" SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile "/etc/apache2/ssl/cacert.crt" SSLCertificateKeyFile "/etc/apache2/ssl/private/cakey.pem" Dav on AuthType Basic AuthName DAV AuthName "Please Input ID and Password." AuthUserFile "/etc/apache2/.htpasswd" Require user kazu Order deny,allow Deny from all Allow from all Dav on AuthType Basic AuthName DAV AuthName "Please Input ID and Password." AuthUserFile "/etc/apache2/.htpasswd" Require user guest Order deny,allow Deny from all Allow from all
#でもfirefoxから見えないので、おかしな所がありそう
そしてサイト設定を有効化
sudo a2ensite ssl
mod_encodingで日本語対応
sudo apt-get install libapache2-mod-encoding sudo vi /etc/apache2/mods-available/encoding.conf sudo a2enmod encoding
再起動
sudo /etc/init.d/apache2 restart
これでネット上の誰かと共同作業することになっても大丈夫、無いと思うけど
追記 2009/08/03
http://d.hatena.ne.jp/wadap/20080603/1212506793
こんなのがあるんですね、
クライアントにソフトを導入させる、サーバにUNIXユーザアカウントが必要、
などの点が面倒ですが、インターネット上に簡単にファイルサーバを作るだけならアリかもしれません
(SFTPとかでもいいけど)