HTTPSに変更するということは、「URL」が変わると言うことで、要するに「URL」の移転となるので、十分に注意が必要な作業になる!

保護された通信
保護された通信

当然、やらないといけない作業が、たくさんあって、初歩的なミスも意外と出てきてしまうようなのですが、こちらの流れに沿って行けば、作業的には、そう難しい訳ではないですね!

https

0.初めに注意事項

まず、変更する前には、バックアップを取っておく
万が一、何かのトラブルで、データに不具合が出ることも想定しておくこと!

HTTPS化を行うに当たって「内部リンクの修正」「HTTPS対応のコードに変更」
この2っが肝になるので、労力も含め、完全に修正が行えると判断できること!

Google Search Console ヘルプセンターより

HTTPS の説明と、おすすめの使用方法について説明
Google 検索セントラル

1.サーバー証明書の取得

サーバー証明書を取得する

レンタルサーバーでは、ほぼ無料の独自SSL(Let’s Encrypt)などが対応していますので、サーバーパネルから「SSL設定」を行うことができます!

また、有料のSSLサーバ証明書を利用したい場合は、レンタルサーバーで用意している独自SSLを申し込むことになります。ドメイン認証型( DV )は、割と低額で導入できます。

SSL証明書については、こちらを参考に!
SSLサーバ証明書とは?無料と有料での違いはあるの?種類について

2.内部リンクの修正

「http://」が残っている内部リンクは全て修正

HTTPSのページで、HTTPで読み込むコンテンツがあると、
ブラウザでは「このサイトへの接続は完全には保護されていません」と表示される!


「http://*****.com」で、始まる内部リンク、画像リンクなどを修正
相対URL(相対パス)「//*****.com」で記載されている場合は必要がない

WordPressの場合はSearch Regex等の、プラグインを使って「URL」の置き換えをすると、手作業の手間が省ける。その際は、相対URL(相対パス)「//*****.com」で置き換えるとよい!

3.設置しているパーツ類の動作確認

アクセス解析、ソーシャルボタン、広告、プラグインなどのコードを変更

HTTPSのページで、HTTPの記述があるコードのコンテンツがあると
ブラウザでは「このサイトへの接続は完全には保護されていません」と表示される!


古いコードを、HTTPS対応のコードに変更させる!

HTTPSの対応も、だいぶ定着してきていますので、古いコード(非HTTPS対応のコード)はあまり見かけませんが、未対応もまだまだある場合がありますし、対応してるけど、古いコードを使い続けている場合もあるかもしれません!

あと、意外と見逃されやすい、CMSで使っているプラグインはよく確認して、HTTPからHTTPSにアドレスが必要なプラグインは変更させるか?無効にするか?

ここでの作業は、HTTPSに対応してないものはすべて削除する。
HTTPSに対応してるものは、古いコードは最新か?確認、必要がないものは削除!

ブラウザでの警告が出ないように細かく確認
すべてのコンテンツがHTTPSでダウンロードされているかを確認

どの要素で、問題になっているのか?
原因を特定して、修正しなければなりません・・・・・混在コンテンツの問題

その辺を踏まえていれば、何が原因かは、ピンとくるかもしれませんね!

4.HTTPSへのリダイレクトの設定

「http://」から「https://」に、301リダイレクト

検索エンジンから、重複のコンテンツと認識されないように、「http://」から「https://」に、301リダイレクトをさせる。


.htaccess に記載するコード(www ありも含む)


具体的な設定方法は、こちらを参考に

SSLを取得後、直ぐに301リダイレクトは避けること

全てのコンテンツの、内部リンクの修正、パーツ類での変更後にリダイレクト設定

「http://」「https://」の、両方でアクセスできる状態にしておいて、
「https://」での不具合が無いか? 完全に確認してからが望ましい!

その辺を踏まえていれば、何が原因かは、ピンとくるかもしれませんね!

5.リダイレクトの確認

正常にリダイレクトされているかチェック

リダイレクトの設定が終われば、正常に「301リダイレクト」されているかをチェックする


ステータスコードの確認したい場合は
リダイレクトチェック

ブラウザーで目視による確認と、ウェブマスタの「Fetch as Google」での確認もすると良い

6.WordPressの設定変更

WordPressを使っている場合

WordPress の「一般設定」の中の、アドレス(URL)を「https://」から始まるURLに変更させる


「管理画面」~「設定」~「一般」

WP一般設定

7.「link rel=”canonical”」タグの更新

head要素の中にある「rel=”canonical”」の更新

canonical属性タグとは、www.の有り無しも含め、重複を避けるために、クローラーが解析しやすいように、head要素の中に記載されているタグ

要するに、重複しているURLに、統一した「URLの正規化」を図る
「http」のままだと、301リダイレクトしてもいずれHTTPに正規化されるようだ!


利用されている、CMSによって設定方法がことなるが、自動的に変更される場合も多い!
WordPress の場合は「一般設定」で変更したことで、自動的に「URLの正規化」が完了

ページに対して右クリック、「ページのソースを表示」で確認

8.Googleウェブマスターツールの登録

Googleウェブマスターツール(Search Console)の登録

「https://」も、URLが変わる扱いになるので「https ://」でも登録する

Search Console に、登録後は、インデックスさせたいURLを設定
右上の「⚙」印から、「サイトの設定」で、使用するドメインにチェック


基本的には、以下のURL(4個)が登録する形になるのではないだろうか

  • http://xxxxx.com
  • http://www.xxxxx.com
  • https://xxxxx.com
  • https://www.xxxxx.com

この中から、使用するドメインに設定させますが、もちろん、301リダイレクトに設定させたものと同じになる

9.サイトマップの更新

Googleウェブマスターツール(Search Console)の登録

「http://」から「https://」に、インデックスさせるので、
新たな「https://」から、サイト マップを登録して送信させる


今までの「http://」については、しばらくはそのままで
「https://」の運用で、問題が無いと判断後にサイト マップを削除する

10.HSTSの設定

HSTS (HTTP Strict Transport Security) を設定(セキュリティ機能)

HSTSの設定とは、サーバーが、ブラウザに対して、
「現在接続しているのは HTTPSなので、HTTPの代わりにHTTPSを使ってね!」

と、サーバー側が、ブラウザに送信する事で、強制的にHTTPS での通信を行うもの
「http://」を打ち込んだ場合、2回目以降が「https://」に切り替わる仕組み

GoogleではHTTPSの際は、「サイトでHSTSを有効にするように」と指示している


.htaccess に記載するコード

※ Preload HSTS に登録申請する場合は、そちらに記載した共通のコードを使う事

HSTSの注意点

HSTSは、HTTPからHTTPSのリダイレクトとの中間攻撃の防止に役立ち、「なりすまし、フィッシング詐欺」の危険性を排除してくれるのに有効になる

HSTSの場合、2回目以降なので、ユーザー側で履歴をけす場合もあるので完全ではない!

「max-age=31536000」単位は秒です。

  • 1時間は3600秒
  • 1日は86400秒
  • 1ヶ月(30日)は2592000秒
  • 6ヶ月(180日)は15552000秒
  • 1年は31536000秒

11.Preload HSTS に登録申請

HSTSをさらに確実にするためにのセキュリティ機能

Google ChromeのPreload HSTS(プリロードHSTS)に、サイトリストを  登録申請

要するに、ブラウザが事前にリストしておいて
「このサイトは、HTTPでなくHTTPSで、初回から必ず接続するように」と指示を送る

プリロードHSTSについて


.htaccess に記載するコード

Preload HSTSに、登録できるには条件があるようで、
「すべてのHTTPからHTTPSリダイレクト、すべてのサブドメインのHTTPS化」などなど

それに、削除に時間が掛かるなど、なにかとトラブルの要素もあるようなので注意だね!
個人的には、一端ここは省きました^^; そもそもエラーがでて対処するのが面倒だ

Preload HSTSの注意点

プリロードHSTS関しては、確実性は高いが、1度登録が完了すると、例えば「https~http」に戻したい場合があっても、HTTPで開けない状態になる。
もちろん、削除申請も受け付けているが、多少の時間もかかるようだ!

「max-age=31536000」単位は秒(任意の単位で変更可能です)

特に急いで登録しないとダメと言う訳でないので、その辺も踏まえて登録申請だね

12.外部リンクの修正

外部サイトのリンクを、HTTPでなくHTTPSに修正

基本的には、全ての外部リンクを修正することは不可能ではあるが・・・・出来ることがあれば、修正しておく!

  • 自身で、修正できる外部リンクは修正する
  • 修正を依頼できるものがあれば依頼する

これは、特に重要項目ではないので、あまり執着せず、できる範囲で特に問題がない

xxx.ソーシャルリンクの引継ぎ

ソーシャルリンクのカウントの引継ぎについて

結論から言うと、カウントの引継ぎは難しそう?

「Twitter、Facebook、Google+、はてな」等の、ソーシャルボタンを設置してて、現状のカウント数を引き継いで表示させれない!

URLが変われば、ソーシャルシュアはリセットされ、新規スタートになる!
残念だが、仕方がないようです。

ただ、PHPの改変によって、「カウント数を引き継いだように見せかける」
ことができるみたいだが、面倒くさそう!デメリットもあり完璧な解決策ではないね

WordPressを使っている場合は、「SNS Count Cache」というプラグインで、
シェア数を「https」に引き継げる機能があり復活させられるようだ!