はい。
芦田愛菜をテレビで見ると不憫でならない気持ちになる、どうも僕です。
imotenの時のような、久々の大型記事でございます。
思いのほか難産だった・・・(-_-;)
今回はimoten用に借りているVPSレンタルサーバーをWebDAVとして利用してしまおう!
という計画です。
無料のストレージも容量制限がきつかったり、1ファイルあたりの制限があったり、セキュリティ的になんとも・・・。
というところもあるし。
そこで、せっかく月額料金払ってVPSサーバーを借りているんだし、ガンガン使おう!
とふとひらめいたのでありました。
ネットっていうのはあらゆる可能性があって、勉強するのも楽しいね。
でも、どんどんマニアックな方向に進んでいる気が・・・。
面白くないよね(;´Д`)
すんません。
※注意
ソフトのインストールを行うので、最悪VPSサーバーがおかしくなるかもしれません。
Apacheというウェブサーバーをインストールするので、セキュリティの設定に失敗すると、最悪サーバーを乗っ取られます。
自己責任でお願いいたします。
これからの説明はDTIや、さくらインターネット等のVPSサーバーをレンタルしているものとして説明していきます。
設定はコマンド入力のミスを防ぐため、コピー&ペーストが出来るコンソールツールを使って行うことを強く推奨します。
WebDAVとは
インターネット上にある、httpを使った自分のファイル置き場です。
詳しい仕様を知りたければ、いろいろ解説しているサイトがあるのでそこを参照してみてください。
俺には難しくて理解不能。
iPhoneアプリもGoodReaderやNumbers等、色々対応しているので、自分専用ファイル置き場として最適。
レンタルサーバーでimotenを運用しているのなら、是非試してみよう。
こういう色々な使い方ができるのもVPS(バーチャルプライベートサーバー)の特徴だね。
自分でカスタマイズできて楽しい。
ちょっと高めの月額料金を払っているのだから、なるべく使いまくろう。
今回も極力最低限の入力でWebDAVサーバーが立てられるように説明していきます。
仕組みを理解する必要はありません。
興味がわいたら調べてみてね。
Apacheのインストール
imotenの設定で大分慣れたと思うので、サクサクやって行きましょう。
Apacheのインストール。
[root@ ~]# yum install httpd エンターキー
途中でy/Nを聞かれるので、yを返す。
yを返すとインストールが終了する。
WebDAV用ディレクトリ(フォルダ)の作成
データ保存用フォルダを作成する。
[root@ ~]# mkdir /var/www/html/dav エンターキー
ディレクトリdavが/var/www/html上に作成された。
davディレクトリの所有権をApacheに変更。
[root@ ~]# chown apache.apache /var/www/html/dav エンターキー
[root@ ~]# chown apache:apache /var/lib/dav エンターキー
読み書き出来るようにアクセス権の変更。
[root@ ~]# chmod 700 /var/www/html/dav エンターキー
[root@ ~]# chmod 700 /var/lib/dav エンターキー
アクセス権は変更された。
これでアクセス用webDAVフォルダが作成終了。
WebDAVへのアクセス用ユーザー名とパスワードを設定
ユーザー名とパスワードは自分で決めたものを使う。
[root@ ~]# htpasswd -c /etc/httpd/conf/.htpasswd ユーザー名(アルファベットで) エンターキー
自分でパスワードを2度入力し、設定終了。
これから何度かパスワードを入力する場面があるが、全て同じ物を使おう。
SSLのインストール
さすがに暗号化無しでファイルをやり取りするのは危なすぎるので、SSL化する。
SSLをインストール。
[root@ ~]# yum -y install mod_ssl エンターキー
SSLのインストールは終了。
サーバー証明書を作成する
秘密鍵の作成
ディレクトリcertsへ移動。
[root@ ~]# cd /etc/pki/tls/certs/ エンターキー
秘密鍵を作成する。
[root@ ~certs]# make server.key エンターキー
またパスワードを求められるので、また2度同じパスワードを入力する。
[root@ ~certs]# openssl rsa -in server.key -out server.key エンターキー
またパスワードの入力を求められるので入力し、終了。
公開鍵の作成
[root@ ~certs]# make /etc/pki/tls/certs/server.csr エンターキー
なにか色々入力する所が出てくるが、エンターで返しても構わない。
但し、Common Name (eg, your name or your server’s hostname) []:
はホスト名を入力する事!(例 xxxxxx.sakura.ne.jp等)
DTIはホスト名が無いので無理。
これをしないとWebDAVフォルダにPCで接続する時に厄介なことになる。
当然丁寧に全部入力してもOK。
コマンド入力に戻ったら終了。
公開鍵は作成された。
SSL証明書を作成
[root@ ~certs]# openssl x509 -in server.csr -out server.pem -req -signkey server.key -days 3650 エンターキー
[root@ ~certs]# openssl x509 -in server.pem -outform DER -out server.der エンターキー
SSL証明書は作成された。
証明書のアクセス権を変更
Apacheが証明書にアクセスできるようにパーミッションを変更する。
[root@ ~]# chmod 400 /etc/pki/tls/certs/server.key エンターキー
[root@ ~]# chmod 400 /etc/pki/tls/certs/server.csr エンターキー
[root@ ~]# chmod 400 /etc/pki/tls/certs/server.pem エンターキー
アクセス権は変更された。
ssl.confの編集
viエディタでssl.confを開く。
[root@ ~]# vi /etc/httpd/conf.d/ssl.conf エンターキー
色々文字がズラズラ出てくるが、編集するのは三行。
#DocumentRoot “/var/www/html”
の#を消し、
DocumentRoot “/var/www/html”
に変更。
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
を、
SSLCertificateFile /etc/pki/tls/certs/server.pem
に変更。
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
を、
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
に変更。
終わったら:wqで保存し、終了。
Webdav.confの作成
新しくWebDAV用設定ファイルをviエディタで作成する。
[root@ ~]# vi /etc/httpd/conf.d/webdav.conf エンターキー
真っ白なファイルが開くが、そこに下記のコードを記入。
Alias /dav/ “/var/www/html/dav/”
<IfModule mod_dav.c>
DAVMinTimeout 600
<Location /dav>
DAV On
EnableSendfile off
SSLRequireSSL
AuthType Basic
AuthName “Login WebDAV”
AuthUserFile “/etc/httpd/conf/.htpasswd”
Require user 設定したユーザー名
Order deny,allow
Deny from all
Allow from all
</Location>
</IfModule>
書き込んだら:wqで保存して終了。
Apacheの起動
サーバーが再起動しても、自動でApache(httpd)が起動するように設定する。
[root@ ~]# ln -s /usr/sbin/httpd /etc/init.d/httpd エンターキー
[root@ ~]# chkconfig httpd on エンターキー
Apacheがスタートアップに登録された。
Apacheを起動する。
[root@ ~]# /etc/init.d/httpd start エンターキー
Apacheが起動した。
これでサーバー設定は終了。
大変だったでしょ?w
アクセスしてみよう
Windowsでアクセスするにはドライブの追加、Macだとサーバに接続を選択し、https://IPアドレス/davでアクセスできる。
が、せっかくなのでiPhoneでログインしてみよう。
今回はGoodReaderを使ってログインしてみた。
GoodReader for iPhone
カテゴリ: 仕事効率化
価格: ¥450
GoodReader for iPad
カテゴリ: 仕事効率化
価格: ¥450
起動し、Connect to Serversをタップ。
WebDAV Server をタップ。
URL-addressに、https://IPアドレスまたはホスト名/dav と入力。
http”s”なので気をつけよう。
Userにユーザー名、Passwordにパスワードを入力。
サーバーが追加されるので、それをタップ。
サーバー証明のウィンドウが出てくるので、Always〜をタップするとアクセス出来るようになる。
これで終了。
DropboxもBox.netももういらない
自前のWebDAVサーバー作っちゃったから、もういらないね。
DTIだと10G、さくらだと20Gが割り当てられている。
システム領域もあるから全部は使えないけど、それでも結構なもん。
しかもアップロードとか早くて無料ストレージよりぜんぜん使える。
せっかくだからバンバン使っちゃおう。
>今回も長編の力作ご苦労様でした。
参考にさせて頂きました。
1点「ssl.conf」の編集で悩みましたので・・・
———-
SSLCertificateFile /etc/pki/tls/private/localhost.pem
を、
SSLCertificateFile /etc/pki/tls/certs/server.pem
———-
とありますが・・・・
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
を、
SSLCertificateFile /etc/pki/tls/certs/server.pem
ではないでしょうか。
>おおっと、すいません。
そこの記述のSSを取り忘れていたのでミスってましたね。
修正しておきます。
ありがとうございますヽ(´ー`)ノ
>お世話になります。挑戦してみたんですがiPhoneからはエラーもなくUploadもできるのですがパソコンでネットワークドライブの割り当てにするとシステムに接続されたデバイスが機能していませんとエラーになりネットワーク場所の追加にすると入力したフォルダーは有効ではないようです。別のフォルダーを選択して下さいとエラーにになります。原因は何でしょうか?
>それなら、マイネットワークの左上にあるネットワークプレイスの追加で追加できないですか?
ウィザードに従って入力すればフォルダが追加されるはずです。
>やはり追加できません。どうも証明書関係を失敗したっぽいです。どうやってもエラーにになります。もう一度色々チェックしてみます。
>信頼できない証明書云々とでてもOK押せば出てきたんですけど、なんででしょうかね?
# cd /etc/pki/tls/certs
# openssl x509 -in server.pem -outform DER -out server.der
がPCとの接続用証明書発行なので、もう一度やってみてください。
>やはり何をやってもPCからの接続はできません。iPhoneからなら別のアプリを使っても接続できます。なぜでしょう?全く解りません。
>どういうエラーメッセージが出るんですか?
>PCのアドレスバーに直接アドレスを入力したら接続の安全性を確認できません。
技術的詳細を表示をクリックすると
IPアドレスは不正なセキュリティ証明書を使用しています。
自己署名をしているためこの証明書は信頼されません。
この証明書が有効となるドメイン名が指定されていません。
(エラーコード: sec_error_untrusted_issuer)
と表示されます。
>http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=17c36612-632e-4c04-9382-987622ed1d64&displaylang=ja
このプログラムをダウンロードして使って見てください。
>ダウンロードしてみましたがやはり接続はできませんでした。
なぜiPhoneで接続できてPCで接続できないんでしょうか?自分なりに色々調べて試してみようと思います。色々教えていただいてありがとうございます。
>XPでも試してみたんですが、あっさり繋がりましたけどね。
証明書が信頼できないってうるさかったですがw
>横からすいません。
アラキさんはWindows7をお使いではないですか?
どうやらwin7は正規のSSL(高いお金払う)しかwebdavで使えない仕様らしいです。
オレオレ証明書はダメらしくクライアント使うしかないのかな?と私も悩んでいます。
>なるほど。Windows7はそんなクs・・じゃなかった、素敵しようになっているとは。
じゃあ、Windowsのコマンドプロンプトから、
net use w: https//IPアドレス/dav
じゃだめですか?
w:の部分はドライブレターなんでなんでもいいですけど。
>Xiプラン検索からこちらへ辿り着き、ド素人ですがとても詳しい解説のお陰でimoten導入まで出来ました。
ありがとうございました。
送信メールのSSL化もお陰様で上手くいき、調子に乗ってWebDAVサーバーにも挑戦してみようと思いチャレンジしてみましたが、途中で解説されている通りにならず手が止まってしまいました。
出来ましたらご教授頂ければ幸いです。
SSLはインストール出来ましたが、次の秘密鍵の作成で
# make /etc/pki/tls/certs/server.key
を入れましたがパスワードを聞かれず
make: *** No rule to make target `/etc/pki/tls/certs/server.key'. Stop.
と出てきて先に進めない状態です。
基本的にコピー&ペーストをしているので大丈夫だと思いますが、どこか手前で手順を間違えている可能性があるのでしょうか?
Macでターミナルを使い、DTIサーバーです。
宜しくお願い致します。
>コマンドプロンプトもダメでした。しかし、クライアントを使ったら接続できました。匿名さん情報ありがとうございます。とりあえずこれでいこうと思います。
>>fooser様
コメントありがとうございます。
# cd /etc/pki/tls/certs/ エンターキー
# make server.key エンターキー
でやってみてくれますか?
>アラキ様
お、繋がりましたか。
何のクライアント使ったんですか?
>一応、繋がったのを確認しただけでまだダウンロードやアップロードは試していないので帰ってからやってみようと思っています。
使ったクライアントはcarotDAVです。
>Windows7でWebDAVの接続をツール無しで出来ました。
結構ややこしくてコメント欄に書き切れないので、
記事としていつもの時間にアップします。
>早々のご指導ありがとうございます。
お陰様で先に進み、こちらで書かれているように設定出来たと思いました・・・が、Macでサーバへ接続しても、GoodReaderで接続しても繋がりませんでした。
Macでは「ネットワーク上にサーバが見つからないため、このサーバに接続出来ません。後でもう一度やり直すか、別のURLを試してください。」と出ます。
GoodReaderでは「Error Inalid server response: HTTP/1.1 405 Method Not Allowed」と出ます。
見直してみましたが入力ミスも見当たらないのですが、恐らくどこかで間違えているのだと思います。
もう一度始めからやってみます。
また報告いたします。
>http405エラーがでてるってことは、httpで接続しようとしてませんか?
httpsにしてます?
>分かりやすく解説されているので、間違いなくhttpsで接続しました。
あれから仕事だったので放置しておきましたら、先程Macでもう一度接続(残っているログで)してみたら、なんと無事に接続出来ました!
でもiPhone GoodReaderは同じく接続出来ませんでした。
設定されるのに時間が必要だったのか分かりませんが、とりあえずMacで接続が出来たので良かったです。
GoodReaderはぼちぼちやってみます。
ありがとうございました。
>iPhone + GoodReaderも接続出来ました。
こちらはなんとも恥ずかしい間違いをしていました。
https://IPアドレス/davの「dav」を「dva」にしていました。。。
しかもDTIなためIPアドレス入力なのですが、丁度「dav」が見えなくて気が付きませんでした。
imotenが出来て、調子に乗っていました^^;
お騒がせしました。
あ、これからもまめに拝見させて頂きます。
今後とも宜しくお願いしますm(_ _)m
>ああ、なるほど。
VPSWebDAVは通信速度がなかなか早くて快適ですよ。
画像のやり取りとかBox.netなんて使ってらんないです。
遅すぎて。
とにかく、つながって何よりです。
おめでとうございますヽ(´ー`)ノ
>はじめまして
imotenの設定等参考にさせていただいています。分かりやすい説明で、全くの初心者の私でも快適にdocomoメールが使用できています*´∀`
本記事を参考にDAVサーバー立てにトライしているのですが、goodreaderで接続しようとすると
Invalid server response:
HTTP/1.1 405 Method Not Allowed
というエラーが出てサーバーに接続できません。以前に質問された方とほぼ同じ状況なのですが、httpsで接続していても上記エラーが発生します
なにか他に考えられる原因はないでしょうか?
よろしくお願いいたします
>コメントありがとうございます。
PCからは覗けるけど、iPhoneからはできないということでしょうか?
それとも両方できないのでしょうか?
もし両方ならアクセス権の変更がうまくいっていないのかもしれないので、
# chmod 700 /var/www/html/dav エンターキー
# chmod 700 /var/lib/dav エンターキー
を流してみてください。
>ありがとうございます
PC、iPhone両方から不可能です(PCはWindows7です)
# chmod 700 /var/www/html/dav エンターキー
# chmod 700 /var/lib/dav エンターキー
入れてみましたが接続できませんでした
ひとつ質問なのですが、アクセス用ユーザー名とパスワードは再設定可能なのでしょうか?
初めてパスワードを入れるときに入力をミスってグチャグチャになってしまったのですが…
>ユーザー名とパスワードは
# htpasswd -c /etc/httpd/conf/.htpasswd ユーザー名(アルファベットで) エンターキー
で再設定可能です。
多分、証明書の発行などでどこか間違っているはずなので、上からやり直してみてください。
>回答ありがとうございます
何度も申し訳ありません
はじめから何度かやり直しているのですが、
秘密鍵作成の項で
# make /etc/pki/tls/certs/server.key エンターキー
または
# cd /etc/pki/tls/certs/ エンターキー
# make server.key エンターキー
を入力しても
make: `/etc/pki/tls/certs/server.key' is up to date.
と出て、解説の通りのパスワード要求が出ません
>もうすでにserver.keyファイルが作られているからでしょう。
そのまま無視して次へ進んで構いません。
>あ、もし作り直すなら、
# cd /etc/pki/tls/certs/
# rm -f server.key
でserver.keyを削除してからもう一度
# make server.key
で作りなおしてみてください。
>ぬー接続できないですねー…
もうちょっとトライしてみます
丁寧な回答、アドバイスありがとうございました!
>くずのはさん
いつも楽しくよんでます。
わたしも、
フォルダが有効でないになりました。
windowsのバグ?のようですか?」
http://support.microsoft.com/kb/287402/ja
ここを参考にしました。
http://omoshiro-joho.com/tech-center/cgi-bin/wiki/index.php?WebDav%A4%CBWinXP%A4%AB%A4%E9%A5%A2%A5%AF%A5%BB%A5%B9#content_1_10
これですぐできました。
>WindowsはWebDAVに接続すると鬱陶しい位アラートでますよね(-_-;)
ソフトをダウンロードして使えばいいだけなんですけど。
ドライブアクセスで使えると楽でいいんですが。
>くずのはさんこんにちわ。
vi /usr/local/imoten/imoten.ini
と入力すると、
-bash: In: command not found
と返ってくるのですがなぜでしょうか、教えてくださいm(__)m
>command not found はコマンドが見つからないっていう意味なんですけど、
viコマンドが無いって事は考えられないので、コマンド入力がミスっているんじゃないでしょうか。
コマンドは手打ちしましたか?それともコピペですか?
vi /usr/local/imoten/imoten.ini
をそのままコピーして貼りつけてエンターキーを押してみてください。
>くずのはさん、こんにちは。
早速WebDAVサーバを立ててみました。
無事に動作して「こりゃすげー」と喜んでいたんですが、次の日になると使えなくなっていました。
とりあえず /etc/init.d/httpd start と打って手動でapacheの起動を試したところ、
httpd を起動中: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[失敗]
と表示され起動が出来ませんでした。
ちなみに /etc/init.d/httpd restart で再起動を試しましたが、
httpd を停止中: [失敗]
httpd を起動中: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[失敗]
と表示され、停止にも起動にも失敗している事がわかりました。
/usr/sbin/lsof -i | grep http で使用状況を確認すると、
httpd 1714 root 3u IPv6 4286 TCP *:http (LISTEN)
httpd 1714 root 5u IPv6 4291 TCP *:https (LISTEN)
と返ってきたので、kill -9 1714 でポートを強制的にKILLして、/etc/init.d/httpd start を打ったところ、
httpd を起動中: Apache/2.2.3 mod_ssl/2.2.3 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Server xxxxxxxxx.sakura.ne.jp:443 (RSA)
Enter pass phrase:
と出てきたのでパスワードを入力したところ
OK: Pass Phrase Dialog successful.
[ OK ]
と表示されその後から正常に動作しはじめました。
くずのはさんの他の記事を見て毎日深夜にVPSサーバーを再起動させる設定を行っているのですが、どうもその再起動時にapacheが正常リスタートされていないような気がしています。
ln -s /usr/sbin/httpd /etc/init.d/httpd エンターキー
chkconfig httpd on エンターキー
でスタートアップには登録しているはずなんですが。。。
現在は kill -9 xxxx で80番ポートに残っているプロセスを強制終了→ /etc/init.d/httpd start で起動。という作業を毎朝手動でおこなっています。
apache起動時(再起動時)に毎回パスワードを聞かれるのも動作としては正常なのか気になっています。
何かいい解決方法をご存知であれば教えてください。
>httpd がうまく終了していないのでプロセスが残っている状態みたいですね。
再起動時のプロセス終了がうまくされていないので、再起動もされていないのかもしれません。
プロセスキルをした後にサーバーを再起動をしてみてはいかがでしょう?
>ありがとうございます。
もう一度、設定を見直してトライしてみます。
>VPSサーバーの再起動をかけた時、なにかエラーメッセージは出ますか?
途中でVPSサーバーの再起動が止まったりしないですか?
なんでApacheのプロセスが残るんだろう(;´Д`)?
>WebDAVが正常動作している状態から手動でVPSを再起動をかけたところimotenの起動までは問題なく行われました。
ただ、同じようにスタートアップするはずのapatchが正常動作しませんでした。
再起動時にエラーは出ていなかったように思います。
原因がわからなかったので証明書を一度消して、再度作り直し→その他の設定をもう一度全てコピー&ペーストし直しました。
その後はWebDAVが動作している状態から手動でVPSを再起動しても正常にWebDAVにアクセスできるようになりました。
今朝も(VPS自動再起動後に)WebDAVに正常にアクセスできる事を確認しています。
このたびは大変お騒がせしました。
お手数をかけて申し訳ございませんでした。
ちなみに、imotenのプッシュも設定当日は不安定でしたが現在は正常に動作しています。
特に何か設定を変更した覚えはないんですが。。。やったのはiPhone側のMail設定をやり直したくらいです。
不思議ですね(苦笑)
いずれにせよ私の環境ではimoten、WebDAV共に今のところとても快適に使えています。
くずのはさんの記事が無かったらこんな事絶対に出来なかったはずなのでとても感謝しています。
ありがとうございました。
>おお、証明書が悪さしてたんですかね?
なんだかちっともわからんですが、うまく出来て何よりですヽ(´ー`)ノ
自分のWebDAVは自炊した文庫やマンガの本棚になってます。
いつでもどこでも本が読めて快適ですよ!w
>毎度毎度で、すみません^_^;
公開鍵の作成のところでうまくいかず
cd /etc/pki/tls/certs/
make server.key
としたらうまくできたのですが、
その後、
openssl x509 -in server.csr -out server.pem -req -signkey server.key -days 3650
で、
server.csr: No such file or directory
となってしまいました。
何か見落としてしまっているのでしょうか。
アドバイスいただけるとありがたいです。
>makeコマンドはディレクトリ指定をしてください。
# make /etc/pki/tls/certs/server.csr
と流さないとダメです。
必ず書いてあるとおりにコマンドを流してください。
>ありがとうございます。
とりあえず、最後まで設定できたようです。
ただ、Mac、iPhoneどちらもうまく繋がりません。
明日、もう一度見直してみます。
また、報告します。
>httpじゃなく、httpsにしてます?
>しています。
証明書のところが、一度躓いたので怪しいは思っていますが(−_−;)
>もっかいやり直すのも手ですねw
>今のところ、そのつもりです。
今日のところは、あきらめて明日仕切り直そうと思います。
色々、アドバイスいただきありがとうございます(^○^)
>Webdav.confの設定でユーザーIDを変更するのを忘れていました(−_−;)
初歩的なミスでした・・・
無事、つながりました。
webdav間の転送もGoodreaderでできてしまうんですね。
ものすごく便利で感動しました。
ありがとうございます。
設定は電車の中でPromptを利用してやり直したのですが、ほんとに便利ですよね。
こちらもある意味感動です。
通勤時間中にサーバーの設定ができてしまうんですものね。
次は、サーバーのセキュリティに挑戦してみようかと思います。