Carpe Diem

  Top > スポンサー広告> Webサーバ > WebDAV(HTTPS)の設定  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

WebDAV(HTTPS)の設定

2011 - 05/15 [Sun] - 00:43

ようやく出来るようになりました。
分からなかったのは、新しい方式と古い方式がネット上で混在していたためです。

WebDAVの設定とありますが、大半はApacheの設定がほとんど初期状態だったために手間がかかっています。

前回のWebDAVの設定(サーバ側)はどうやら古いやり方のようで、新しいやり方はもっとシンプルのようです。
では以下設定の方法を。

まずApacheのファイルの中身を学びます。

◆/etc/apache2 ディレクトリ内のファイル

apache2.conf: メイン設定ファイル
conf.d: Apache2全体に適用される設定が記述されているファイルが格納されるディレクトリ
envvars: Apache2の環境変数
httpd.conf: 以前使用されていた設定ファイルの名前。Apach2全体に適用される設定を記述する。
mods-available: このディレクトリにはモジュールとモジュールの設定ファイルが格納されている。すべてのモジュールが専用の設定ファイルを必要とするわけではない。
mods-enabled: このディレクトリに /etc/apache2/mods-available に格納されているモジュールへのシンボリックリンクを置くと、そのモジュールがロードされるようになる。
ports.conf: Apache2が接続を受け入れるポートの設定
sites-available: このディレクトリにはApache2のバーチャルホストの設定ファイルを格納する。
sites-enabled: このディレクトリに /etc/apache2/sites-available に格納されているモジュールへのシンボリックリンクを置くと、そのバーチャルホストが有効になる。

前の備忘録で頻繁にいじっていた「httpd.conf」ですが、どうやら「以前使用されていた」もののようで。
このことで前設定した分が旧式ということに気づいたのです。

では続きまして。


◆apacheのSSLを有効にする

SSLモジュールの有効化

$ sudo a2enmod ssl

/etc/apache2/sites-available/ に default-ssl が生成される。

次のコマンドで default-ssl を有効にすると、/etc/apache2/sites-enabled/ にシンボリックリンクが張られます。

$ sudo a2ensite default-ssl

$ ls -l /etc/apache2/sites-enabled/
total 0
lrwxrwxrwx 1 root root 26 2010-10-29 10:47 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root 30 2010-10-29 12:41 default-ssl -> ../sites-available/default-ssl


◆SSL接続を使用するサーバの設定を行う。

$ sudo emacs -nw /etc/apache2/sites-available/default-ssl
: アクセスするポートを変更する場合は数字を変更
ServerAdmin: 管理者のメールアドレスに変更
DocumentRoot: Apache2 のドキュメントルートを任意のパスに変更

鍵のパスを実際のパスに変える。SSLの設定で設置した鍵を使用。

SSLCertificateFile /etc/ssl/CA/server.crt
SSLCertificateKeyFile /etc/ssl/CA/
server.key

アクセスするポートを変更した場合は、/etc/apache2/ports.conf でポート番号を変更する。

$ sudo emacs -nw /etc/apache2/ports.conf
Listen 443: 番号を任意のポート番号に変更

設定に間違いがないかをチェック。

$ sudo apache2ctl configtest

するとこんな警告が出ました。

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName


どうやら

$ hostname --fqdn

とした時に、グローバルからアクセス可能なホスト名が出てこないのが原因らしいです。
なので/etc/hosts を編集する必要があります。

$ sudo emacs -nw /etc/hosts

127.0.1.1 hostname
こんな行があるはずなので、

127.0.1.1 your.domain.com hostname
グローバルからアクセスできるホスト名を、127.0.1.1に対応する最初のホスト名として記述します。

apache再起動する。

$ sudo /etc/init.d/apache2 restart

とまぁこれで本来うまくいくはずなのですが、僕の場合相変わらず「apache2: Could not~」が出ます。
そこで「そういえば前作ったcrtでドメイン名適当にしちゃったなぁ」と思い出し、改めてDDNSに書き換えて作成。

しかしまた失敗orz

さらに調べてみるともっと簡単なやり方がありました。

/etc/hosts で、

127.0.0.1 localhost localhost.localdomain hirakuro hirakuro.localdomain
となっているのを

127.0.0.1 hirakuro.localdomain localhost localhost.localdomain hirakuro
と直すだけ。

ApacheでWebサーバの名前として使っているホスト名を最初に持ってくれば良いわけ。これでOK。普通に通りました。


◆SSL通信でのポートを開放

では次にルータの設定でポート開放を行います。
SSLの場合普通は443ポートになります。これはルータでの設定なのでマニュアルを参考にしてください。僕の場合はバッファローのマニュアルです。

ちゃんと開いてるか確認しましょう。ルータの不具合でたまに開いてないことがあります。僕はそれでずっと時間を費やしました。
ポートチェック【外部からポート開放確認】


開放したら

https://(DDNSで取得したホスト名)/


で「信頼できない」証明証が発行されたら成功です。
「信頼できない」と言いましたが、今回のような個人の自己証明局は基本クライアント(=ブラウザ)の信用は自動的には得られません。有償の認証局(VeriSignとか)なら自動的にされますが。

ちなみにVeriSignに証明されようとされまいと、SSL通信ではWebサーバの暗号化力に違いが出るわけではないです。有償の認証局を使う人は、保険をしている、と言うことです。SSL通信で何らかの不備があればVeriSignから補償がされます。そんな感じ。


◆WebDAVの設定

Apache2 の 各モジュールを有効にする。
モジュールの有効化
$ sudo a2enmod dav
$ sudo a2enmod dav_fs ←既に有効っぽい
$ sudo a2enmod encoding


Webdavで使用するディレクトリを作成。今回所有者は www-data:www-data にする。場所自体は自由です。ただし次のdefault か default-sslでの設定できちんと揃えましょう。まぁ/var/www/がApacheのデフォルトだからこのままでいいかと。
今回は/webdavというフォルダを作成してます。

$ sudo mkdir -p /var/www/webdav
$ sudo chown www-data:www-data /var/www/webdav


次に/etc/apache2/site-availableのdefault か default-sslに WebDAV フォルダの設定を追加する。僕はSSLの方なのでdefault-sslにしてます。書く場所は最後の方でOKです。Webページでは/davというアドレスにします。

<ifmodule mod_dav_fs.c="">
Alias /dav "/var/www/webdav" ←WebDAVで使用するフォルダの位置
<Location /dav>
DAV on
SSLRequireSSL
<-- SSLのみ通す
Options Indexes
Order deny,allow
AuthType Basic
AuthName "Webdav"
AuthUserFile /etc/apache2/dav.passwd 
<-- パスワードファイルの位置
#Require user user1,user2 <-- 特定のユーザの場合
Require valid-user
<-- 全ユーザの場合

</Location>
</IfModule>

認証用のパスワードファイル「
dav.passwd」を作成します。ユーザー名を「server」とします。

$ cd /etc/apache2/
$ sudo htpasswd -c ./
dav.passwd server ← 最初の一人のときだけ
New password:yyyy
Re-type new password:yyyy
Adding password for user server


-c オプションは新しくファイルを作成してしまうので、2人目以降は

$ sudo htpasswd ./dav.passwd server
で追加します。

最後にパスワードファイルのオーナー&パーミッションを変更。WebDAVフォルダのオーナーと合わせる?

$ sudo chown www-data:www-data ./dav.passwd
$ sudo chmod 600 ./dav.passwd


Apache2 を再起動すれば利用できるようになります。

$ sudo /etc/init.d/apache2 restart


アクセスするときは

https://(DDNSで取得したホスト名)/dav

そうすると先ほど設定したユーザー名とパスワードを聞かれるので入力すればWebDAVのフォルダにアクセスできます。

作成したWebDAVフォルダは/var/内なのでGUIでのファイル移動は権限の権限の問題で出来ません。なのでアクセスできるところに元ファイルを置き、WebDAVのフォルダにはリンクを入れるといいです。


次回はWebDAVのクライアント(ブラウザでない)について書きたいと思います。

ソース:
Apache2 でWebサーバ
Apacheのwarning回避
Samba + WebDav + SSL その1

>相変わらず「apache2: >Could not~」が出ます。

<グローバルIP> <DDNSのホスト名>
をhostsに追加したらどう?

>有償の認証局を使う人は...
SSLは2つ役割があって
1,通信の暗号化
2,なりすまし防止
で認証局に署名してもらうと,アクセスしようとしてるサイトがちゃんとしたところか証明できます.


webdavどう?

Re: タイトルなし

あ、ゴメン修正前に投稿しちゃったんだ。一応解決してますb
ちなみにグローバルIPは固定じゃないからそのやり方出来ないんですorz
てかその前に外部からアクセスできない。なんで。

> 2,なりすまし防止
なるほど=3暗号化しか目がいってなかったわ。

仲間内のファイルサーバとしては使えると思うよ。デフォルトでもフォルダを入れたらどんどんツリー状に表示してくれるし。編集したらもっと綺麗に出来るかと。
今のところメインPCからSambaでサーバにファイル転送→そのフォルダをリンクしてWebDAV公開かなぁ。

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。