http://からhttps://へ

最近の検索サイトは、http://よりhttps://を優先するそうな。
そういえば、iPhoneも、「安全な接続でありません」という表示を頻繁に見かけるようになって、それはhttp://で接続するときに出るとのこと。うーむ。じゃあ、https://にしなければ。
そもそもhttpとhttpsの違い。素人の私だって、httpsは暗号化されている、httpはされていない、くらいのことは知っている。でもそこからのスタート。

  • 疑問その1。httpとhttpsでは、サーバーに置くファイルは違うのか。答え。否、同じファイルである。
  • 疑問その2。いったい、具体的に何が違うのか。答え。SSLというものを使っているか使っていないか。
  • 疑問その3。どうしたらSSLを使えるのか。答え。ドメインごとにSSLに対応させる。無料SSLで十分。
  • 疑問その4。SSLに移行させたら、http://ではアクセスできないのか。答え。否、アクセスできる。ただ、https://にリダイレクトさせることはできる。
  • 疑問その5。リダイレクトさせると起こる問題は何か。答え。ページの中で読み込むファイルの中にhttp://で読むものがあると、エラーになる。具体的に多いのは、スタイルシートファイル。それを防ぐには、読み込むファイルのプロトコルをhttps://に書き換えるか、相対パスにするか、ルートパスにする(/で始める)か、サイトルート相対パス(//で始める。この方法だと、違うサイトのファイルを、親ファイルと同じプロトコルで読み込むことができる。つまりhttp://でアクセスするときはhttp://でhttps://のときはhttps://で読むので、エラーが起こらない。)で書き換えるか。

このページが置かれているサーバーは、無料SSLに対応しているから、無料でSSL化することができる。ただし、一度に登録できるサブドメインは20まで。また、Subに置かれているドメインはSSL化することができるが、Mainに登録されているドメインはSSL化できない。なので、Mainにはダミーで実際に使っていないドメイン名を置いておかなければならない。
幸い、私の場合、Mainには使っていないドメイン名を割り当てていたので、このMainドメインの問題ありませんでした。一方、80近くサブドメインがあるので、1週置きに4回SSLの登録を行う必要があります。ただ、80のうち、全く使われていないものも20以上あるので、それらを削除すれば、実際にSSLの登録をするのは60以下。1週置きに3回、つまりのべ2週間ちょっとで終了することになりそうでした。
実際にSSLの登録を始めてみると、やはり21ドメイン目で登録できなくなります。21ドメイン目を登録するには、最初のドメインの登録の7×24時間後まで待つ必要がありました。
さてめでたくすべてのドメインが終わり、せっかくだからすべての方にSSLを味わっていただこうと(違う、GoogleとiPhoneの対策のため)リダイレクトを置きました。
具体的には、次の3行をpublic_html直下の.htaccessファイルに書き足します。(.htaccessファイルがなければ、この3行のファイルを作成して、public_html直下に置きます)

rewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

最後の=301の4文字はなくてもリダイレクトしますが、あった方が検索サイトさんが、リダイレクト先をリダイレクト元と同じサイトと見なしてくれるようです。
さて、ここで問題が発生しました。ブログのスタイルが崩れます。先の疑問その5の問題が起こったようです。スタイルシートファイルはリダイレクトしてくれないようです。ブログごとに、設定>公開>公開パス>サイトURLを書き換えたら直りました。
また、CGIからLWPで読み込むときも、うまくリダイレクトしないようです。https:で指定する必要があります。

カテゴリー: iPhone, インターネット, コンピュータ パーマリンク