遅ればせながら、弊社のサイトを常時SSLに対応しました。サーバー会社によって方法はさまざまですが、ひとつのケースとして記録しておきたいと思います。
弊社が使用しているサーバー会社は、NTTコミュニケーションズのウェブアリーナです。もう10年以上使っています。安定した運用に安心感はあるのですがCronが使えないとか、他のサーバー会社に比べて保守的かもしれません。
ウェブアリーナでは、デジサート・ジャパン(旧シマンテック)と、グローバルサインのSSLブランドが取得できます。新しいサーバープランなら、Let’s Encryptの無料SSLも取得できるようでしたが、自分のサーバープランが古いため使えませんでした。
SSLを購入する
今回は、価格の安いグローバルサインのSSLを選択しました。通常、34,800円のクイック認証SSLが、26,800円に割り引きされていたことが決め手でした。
まず、リダイレクトを.htaccessに設定していると、ドメイン名ドメインの実在性確認が正常に行えず、申請に失敗してしまうので、一時的にコメントアウトします。
約内容変更サービスという画面から、「グローバルサインのSSLサーバー証明書申請代行のお申し込み」というリンクをクリックして、証明書の申し込みをします。その画面で、コモンネーム(ドメイン名)や組織名、都道府県、市区郡などといった申請情報の入力を行います。入力は半角英語です。
入力が終わったら確認画面を経て、申請です。申請後数分で、SSLサーバー証明書発行およびサーバーへの設定完了のお知らせメールが送信されてきます。SSL設定代行を依頼しているので、CSRを生成したり、証明書の暗号文をコピペしたりする必要はありませんでした。
SSLを使う
FTPでルートに上ががると、しばらく(数分)すると/sslディレクトリが生成されます。/ssl/homeディレクトリがSSL通信を行うコンテンツを格納するところになります。サーバー会社によっては、httpとhttpsが同一ディレクトリのところもありますので、確認が必要です。
httpのホストに上がっているデータをいったんローカルに落として、/ssl/homeにアップし直します。CMSのMovable Typeの静的データのパスを新しいものに書き換え、ログインして、設定>全般設定で、公開パスをhttpsに、ウェブサイトパスをIPアドレス/ssl/homeに変更しただけで、MTは無事動作しました。データベースにはなにも手を加えていません。
次に、.htaccessに、httpから、httpsへのリダイレクトを記述して、いったん完成です。ページを見ていって、おかしいところがないか確認します。ここで古い記事へのリンクがhttpで始まっていることに気づき、MTの記事検索から、httpを探しだし、httpsに一括置換をしました。
さらに確認のため外部の人への協力も得ました。Facebook「に常時SSL変えたたんだけど、おかしいところないですか」と、尋ねたところ、スマホで見れないとのこと。(教えてくれた人ありがとう)調べてみたら、ドメイン/sp/spと、spが2つ連続しているようです。
弊社のサイトは、レスポンシブではなく、PCと、スマホで別ディレクトリです。.htaccessで、ユーザーエージェント見みて振り分けしています。そこに支障がでているようです。
いろいろ工夫してみたのですが、最終的に.htaccessに「は/sp/spを/spに置換セヨ」という記述をして無事表示
さらなる伏兵
過去の記事でも記述していましたが、アドレスをhttpsにすると、URLが異なるため、ソーシャルカウントが0に戻ってしまうという問題があります。対策としては、og:urlに、http以前の記事はhttpを、それ以降はhttpsとすることで回避できるという情報がありました。
本来ならMTのテンプレートにSSL化した日付をキーに条件分岐を記述するのですが、その前のテストとして、直接、任意の記事のog:urlをhttpに変更してみました。しかし、ソーシャルカウントが0のままなのです。Facebookデバッガーで、スクレイピングしても、デバッガーの値はhttpsのままです。
Rowデータはhttpを取得しています。こっちの問題なのか、Facebook側の問題なのか、引き続き調べてみます。ゆえに古い記事はFacebookのソーシャルカウントは0のままです。
一方、Twitterの数字は、直接とれないので、APIサービスを経由して取得している関係で、https版にリンクするだけで、過去の数字もとれました。ランキングサービスも、URLをhttpsに変えるだけで、過去の数字も初期化されることなく、表示されています。
まとめ
常時SSL化は、手順を調べて、備えていても、どこかに伏兵が潜んでいるかもしれません。伏兵と出くわしたとき、どの様な対応をするのか、一時的に戻して、土日に修正対応を行うなど、計画を立てておいた方が安心です。ソーシャルカウントなど、無理に過去の数字を追いかけないという案も場合によっては選択肢になります。
“対応待ったなし”になった常時SSL、万全の準備と、万一の対応策をもとに、実施しましょう。
関連記事
常時SSL対応必須!ブラウザーシェアーから見る常時SSLへの対策
[文:小山智久]