Coreserverの共有SSLで.htpasswdによるBasic認証
まあAmazon EC2は海外在住者を相手にしてくれないということで、存在をスッパリ忘れ、さくらインターネットを試用してみた。
しかしさくらはPHPによるFTPを認めていない。さくらのPHPはモジュールでなくCGIだからだ。
SPENCER - Dari layanan cloud hingga konsultasi bisnis, ini adalah perusahaan yang menawarkan produk yang memenuhi kebutuhan pelanggan secara efisien.
でさくらでやってみたが、このオレオレFTPクライアントは、PASVモードで動く。今回ターゲットとしているアクセス先FTPサーバは、PASVモードは受け付けないようだ。FFFTPからやっても、PASVモードだとディレクトリ一覧取得で止まってしまうのがその証左だ。PHPから強引にputすると、指定ディレクトリ内に指定名称のファイルだけはできるが、中身は送られず、0バイト。
PASVモードが使えるようにするには、サーバ側のポートを全部開放しなければならないようで、ターゲットサーバのセキュリティを脆弱にしてしまう。
よってさくらは放棄。
さくらがダメなら、まあハゲデブメガネオヤジがロリポップはないだろうということで、XreaかCoreserverへ走るのが人情。Xrea+とCoreserverの違いがマジわかんなかった(初期費用1000円、月額差100円の違いは、子供じゃないので気になりません)ので、Coreserver(プランCORE-A)を試用。
CoreserverはPHPがデフォでモジュールなので、ネイティブなFTP関数がぜんぜんOK。アクティブモードでいける。しかし、やはり0バイトになってしまう…。パッシブモードだと、ファイル自体できない。
たぶん、お互いファイアウォールがちがちなのだろう。
仕方がないので、相手サーバへはWebDAVでつなぐことにした。実は今回のターゲットサーバは、同じディレクトリを、WebDAVサーバとしても公開しているのだ。後だしジャンケンでスンマソン。チェコ製のWebDAVクライアントクラス:
http://x-dav.xwave.ch/php/
バッチリ動いた。
これでいいんならさくらでよかったのではないか、というのは言わない約束。さくらスタンダードプランだと容量3GBしかないんで、画像うっかりためたときに微妙にover quotaの不安がある。
ということでCoreserverのまま、今日は共有SSLで.htpasswdによるBasic認証を実装した。Coreserverには共有SSLというものがあり、URLの頭にhttps://うんちゃらうんちゃらをつけるだけで、なんちゃってSSLがお手軽に実現できちゃうのだ。こんな手軽で許されるんでしょうか。
.htpasswdの生成は、cmdからtelnetしてもウンでもなくスンでもなく、どうやらCoreserverはtelnet禁止みたいだったのでTera TermでSSH接続するも、htpasswdなんてコマンドねえよとbash様に蹴られる。隠された〜。しかたないので、crypt()使った人様のPHPソースをぬ(ry、自分のサーバで走らせて生成した。
.htpasswdについては、なんか、生成サイトが山のようにひっかかったが、人様のサイト上に無防備にパスワード送る人の気がしれない。
「人に盗まれにくいパスワードを生成してくれるホームページ!」
ってのを先日どこかで見たが、あれと同じことではないのか? おまえのホームページに盗まれてるじゃん! っていう。
http:// 禁止(SSL強制)のやり方は、御多分にもれず小一時間悩んだが、
CORESERVER.JPで共有SSL強制 : "侘寂" Archives
に従ったらできた。