先日、ブログの運用サーバーをエックスサーバーにお引っ越しした旨を記事にしましたが、その際にエックスサーバーの契約特典として エックスサーバー SSL の1年間無料キャンペーンというものがついてきました。SSLとは簡単にいえばサイトにアクセスする際のセキュリティを高める仕組みのことです。
微弱ながらSEOにも影響をあたえるという公式見解もあるそうなので、せっかく無料ならSSLを試してみよう!ということで、このブログをSSL化した手順を備忘録。
ちなみにエックスサーバーへのお引っ越し作業の備忘録記事はコチラ。
エックスサーバー SSL 登録手順
エックスサーバーのSSLには独自SSLと共用SSLが用意されていますが今回対象とするのは独自SSLのほうです(ちなみに共用SSLは独自SSLよりも信頼性がひくく仕様に制限もあります)。
まずはエックスサーバーのインフォパネルにログインします。画面左のメニューから「契約関連」→「追加のお申し込み」→「SSLの新規取得」とすすみ「追加のお申し込み」をクリック。契約内容の設定を選びます、今回は1年間無料キャンペーンの対象となるCoreSSLに申し込むため下記のように設定しました。SSLを設定するサーバー・ドメインも選んで次にすすみます。
次の画面では申し込みにあたって住所氏名などを入力します。また、2way利用がというものが可能で「www.◯◯◯.com」「◯◯◯.com」のサブドメインwwwとwwwなしの両方で運用している場合は、コモンネームの欄を「www.◯◯◯.com」で申請することによって、両パターンでSSLの利用が可能になります。
申し込みを終えたら「SSL証明書設定完了のお知らせ」というメールが届くまで待機。メールが届いたら、インフォパネルの「契約情報」→「SSL契約情報」を確認すると契約情報が確認できるようになっています。
これでSSLの登録は完了しました。
SSL化されたサイトを修正
つぎにSSLを適用したサイトに手直しを入れます。
なぜ手直しが必要なのか?SSL化されたさいとは通常「http://〜」でアクセスするURLが「https://〜」に変わります。これがSSL化されている証拠でありますが、使っているテーマやテーマのカスタム具合によっては画像やファイルなどのパスをフルパス(http://〜…image.jpgとか)で読み込んでいたり、サイト内リンクがhttp://のまま貼られていたりするからです。
SSL化されたサイトには原則http://〜から呼び出される非SSLなデータは読み込めません。アクセスしてもブラウザによってはエラーを吐きます。また、何も対策しないでおくとhttp://とhttps://のページは別々に認識されるためSEO的にも少々問題ありです。
いっこずつ解決する必要がありますので、ボクがこうじた対策を下記に備忘録。
WordPressのサイトURL設定を変更
まずWordPress内部から対応していきます。WordPressにログインしましょう、このときログイン画面に進む際もhttps://〜から始まるURLでアクセスします。
メニュー「設定」から「一般」をえらび「WordPress アドレス (URL)」「サイトアドレス (URL)」をSSL化したURLに変更します。
画像データ等のパスの変更
つぎにサイト内で使用している画像などのデータのパスを変更します。SSL化した段階でサイトがどの程度の規模になっているかにもよりますが、この作業が一番面倒です。
記事数が少ない場合や使っている画像が少ない場合は、手作業で「http://〜」を「https://〜」に直してもOKです。
記事数が多い場合はいっこいっこ修正するのはかなりキツイので「Search Regex」というプラグインを使うと一括変換が可能です。プラグインの新規追加から検索すれば出てくるはずです。「Search Pattern」に「http://(自身のドメイン)/…」などをいれて検索すれば一括表示されます。更に「Replace pattern」に「https://(自身のドメイン)/…」などをいれて「Replace&Save」を押せばそのまま置き換わります。
注意しなければいけない点は、Search Regexで置き換えをすると元には戻せません。誤った置き換えをしてしまうと復旧がさらに困難になります。置き換えする文字は慎重に確認してから置き換えしましょう。
テーマのカスタムデータなども確認
Search Regexで置き換えが可能なのはあくまで「投稿記事」内のURLのみです。子テーマなどをつかってカスタムしたphpファイルなどには手動で修正をかける必要があります。
カスタムしたであろう子テーマ内のphpファイルをひとつずつ確認し「https://〜」に変更します。
css内部の参照URLなどもフルパス表記している場合は修正しましょう。
SNSなど外部サイト参照がある場合も確認
記事内、テーマ内問わず、TwitterやFacebookなど外部サイトSNSなどのシェアボタン、ウィジェットやAPIを利用した何某を設置している場合、このURLも確認したほうがよいです。大抵の大型サイトはhttps://に直せばそのまま使えます。
余談ですがソーシャルでのシェア数カウントはリセットされてしまう可能性が高いようです、URL自体が変わるので。ボクはシェア数表示を採用していないので関係無かったですが、これは人によっては苦渋の決断をせまられるポイントかもしれませんね…。
プラグインなどで外部参照している場合
プラグインで外部のデータを参照するようなものや、デザインなどのために外部ライブラリを参照している場合、このアクセス先がSSL対応していないとこれもエラー要因になります。SSL切り替えで対応できるものはいいですが、そうでない場合は切り捨てを考えないといけないかもしれません。
内部リンク、embedなども修正
サイト内でリンクを張っている場合、そのURLも変更したほうがよいでしょう。微力ながらリダイレクト時の負荷軽減につながるはずです。
またWordPress4.4以降で搭載されたembed機能(記事内にはられたWordPressURLを自動的にブログカード表示してくれる機能)にも影響をおよぼす場合があるようです。ボクのサイトは実際一時表示されなくなりました。Search Regexを使った場合は記事内URLは置き換えされているはずですが、それだけでは単にURLが文字として表示されてしまいます。
該当の記事を一度編集画面で開き、更新ボタンをおすことでブログカード表示が復活しましたので、不具合がある場合は試してみてください。
また、これにより外部のWordPressリンクを参照した際に、相手側のサイトが非SSLサイトだった場合はブログカード表示ができなくなります。これは相手側がSSL対応しないかぎり、どうにもできないので諦めて文字リンクなどに切り替えましょう。
テーマ・STINGER などを使ってる人は…!
ここまでやってようやくエラーが減るのですがいくつか消えない画像エラーが…。
ボクの使っているテーマ・STINGER7をはじめSTINGERシリーズでは、テーマを適用すると独自の管理画面ページが追加されます。ファビコンやApple端末用のアイコン画像などをその管理画面で設定するのですが、ここで設定した画像はhttp://のまま参照されているのでエラーの要因になります。
メニューの「STINGER管理」から「アイコン・ファビコン設定」で一度画像を削除し、メディアから新たに参照しなおしましょう。
これで解消されるはずです。
STINGERだけでなく、オリジナルの管理画面をもつテーマやWordPress標準のカスタマイザーで画像設定をしている場合は一度画像を削除し、再度同じ画像を設定し直すことでhttps://から参照するように修正されますので、確認してみてください。
.htaccess でリダイレクト設定
最後にFTPソフトなどを使ってWordPressをアップしているサーバーを開きましょう。SSLが設定されている階層の.htaccessファイルに下記コードを追加します。
できればこの作業パス修正などを終わらせたうえで最後に行いましょう。
RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
このコードでhttpでアクセスされてもhttpsにリダイレクトするようになります。
もしくは、HSTS(HTTP Strict Transport Security)を登録しておけば、おなじくhttpsでアクセスさせられるようになる(リダイレクトはセキュリティ的に穴があるっぽい?)
くわしくはググッてみてください。
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
これを追加することによって2回目移行のアクセスで強制的にhttps://でアクセスさせるようになります。
外部サイト、ツールへの対応
次に外部のツールへの対応をします。
Google アナリティクスの設定
アナリティクスはhttps対応済みなのでトラッキングコードなどもそのままの状態で問題ありません。強いて直すなら「プロパティ設定」の「デフォルトの URL」をhttps://に直しておきましょうか。
Search Consoleの設定
http://で既に登録してありましたが、SSL化後は別サイト扱いになるそうなのでhttps://ではじまるURLで再度登録し直します。
手順は同じですので、省略。
参考:ウェブサイト プロパティを追加する(Search Console ヘルプ)
その他サイト・リンクについて
その他ツールなどに登録している場合、URL変更できるのであれば修正してもいいでしょう。
ボクの場合、PINGOOというping送信サービスに登録していましたが、SSL化した直後から自動取得が止まってしまい、サイト登録をhttps://に修正しようにもどうやらSSL化したURLは登録できない模様…いっぽうでfeedの登録https://でOKという謎仕様。う〜む…。
ちなみにGoogleの中の人によれば、自サイト以外の外部サイトから貼られているリンクについては修正する必要はないようです。
参考:HTTPS移行後に外部リンクのURLを https:// に変更する必要はない(海外SEO情報ブログ)