HTTPSに変更するということは、「URL」が変わると言うことで、要するに「URL」の移転となるので、十分に注意が必要な作業になる!
当然、やらないといけない作業が、たくさんあって、初歩的なミスも意外と出てきてしまうようなのですが、こちらの流れに沿って行けば、作業的には、そう難しい訳ではないですね!
0.初めに注意事項
まず、変更する前には、バックアップを取っておく
万が一、何かのトラブルで、データに不具合が出ることも想定しておくこと!
HTTPS化を行うに当たって「内部リンクの修正」「HTTPS対応のコードに変更」
この2っが肝になるので、労力も含め、完全に修正が行えると判断できること!
Google Search Console ヘルプセンターより
1.サーバー証明書の取得
レンタルサーバーでは、ほぼ無料の独自SSL(Let’s Encrypt)などが対応していますので、サーバーパネルから「SSL設定」を行うことができます!
また、有料のSSLサーバ証明書を利用したい場合は、レンタルサーバーで用意している独自SSLを申し込むことになります。ドメイン認証型( DV )は、割と低額で導入できます。
SSL証明書については、こちらを参考に!
SSLサーバ証明書とは?無料と有料での違いはあるの?種類について
2.内部リンクの修正
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リダイレクトをさせる。
.htaccess に記載するコード(www ありも含む)
1 2 3 4 5 6 7 8 9 |
Options +FollowSymLinks RewriteEngine on "# https に統一" RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://www.○○○○.com/$1 [R=301,L] "# wwwありに統一" RewriteCond %{HTTP_HOST} ^○○○○\.com$ RewriteRule ^(.*)$ https://www.○○○○.com/$1 [R=301,L] |
具体的な設定方法は、↓こちらを参考に
全てのコンテンツの、内部リンクの修正、パーツ類での変更後にリダイレクト設定
「http://」「https://」の、両方でアクセスできる状態にしておいて、
「https://」での不具合が無いか? 完全に確認してからが望ましい!
その辺を踏まえていれば、何が原因かは、ピンとくるかもしれませんね!
5.リダイレクトの確認
リダイレクトの設定が終われば、正常に「301リダイレクト」されているかをチェックする
ブラウザーで目視による確認と、ウェブマスタの「Fetch as Google」での確認もすると良い
6.WordPressの設定変更
WordPress の「一般設定」の中の、アドレス(URL)を「https://」から始まるURLに変更させる
「管理画面」~「設定」~「一般」
7.「link rel=”canonical”」タグの更新
canonical属性タグとは、www.の有り無しも含め、重複を避けるために、クローラーが解析しやすいように、head要素の中に記載されているタグ
要するに、重複しているURLに、統一した「URLの正規化」を図る
「http」のままだと、301リダイレクトしてもいずれHTTPに正規化されるようだ!
利用されている、CMSによって設定方法がことなるが、自動的に変更される場合も多い!
WordPress の場合は「一般設定」で変更したことで、自動的に「URLの正規化」が完了
ページに対して右クリック、「ページのソースを表示」で確認
8.Googleウェブマスターツールの登録
「https://」も、URLが変わる扱いになるので「https ://」でも登録する
Search Console に、登録後は、インデックスさせたいURLを設定
右上の「⚙」印から、「サイトの設定」で、使用するドメインにチェック
基本的には、以下のURL(4個)が登録する形になるのではないだろうか
- http://xxxxx.com
- http://www.xxxxx.com
- https://xxxxx.com
- https://www.xxxxx.com
この中から、使用するドメインに設定させますが、もちろん、301リダイレクトに設定させたものと同じになる
9.サイトマップの更新
「http://」から「https://」に、インデックスさせるので、
新たな「https://」から、サイト マップを登録して送信させる
今までの「http://」については、しばらくはそのままで
「https://」の運用で、問題が無いと判断後にサイト マップを削除する
10.HSTSの設定
HSTSの設定とは、サーバーが、ブラウザに対して、
「現在接続しているのは HTTPSなので、HTTPの代わりにHTTPSを使ってね!」
と、サーバー側が、ブラウザに送信する事で、強制的にHTTPS での通信を行うもの
「http://」を打ち込んだ場合、2回目以降が「https://」に切り替わる仕組み
GoogleではHTTPSの際は、「サイトでHSTSを有効にするように」と指示している
.htaccess に記載するコード
1 2 3 |
Header set Strict-Transport-Security "max-age=31536000; |
※ Preload HSTS に登録申請する場合は、そちらに記載した共通のコードを使う事
HSTSは、HTTPからHTTPSのリダイレクトとの中間攻撃の防止に役立ち、「なりすまし、フィッシング詐欺」の危険性を排除してくれるのに有効になる
HSTSの場合、2回目以降なので、ユーザー側で履歴をけす場合もあるので完全ではない!
「max-age=31536000」単位は秒です。
- 1時間は3600秒
- 1日は86400秒
- 1ヶ月(30日)は2592000秒
- 6ヶ月(180日)は15552000秒
- 1年は31536000秒
11.Preload HSTS に登録申請
Google ChromeのPreload HSTS(プリロードHSTS)に、サイトリストを 登録申請
要するに、ブラウザが事前にリストしておいて
「このサイトは、HTTPでなくHTTPSで、初回から必ず接続するように」と指示を送る
.htaccess に記載するコード
1 |
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" |
Preload HSTSに、登録できるには条件があるようで、
「すべてのHTTPからHTTPSリダイレクト、すべてのサブドメインのHTTPS化」などなど
それに、削除に時間が掛かるなど、なにかとトラブルの要素もあるようなので注意だね!
個人的には、一端ここは省きました^^; そもそもエラーがでて対処するのが面倒だ
プリロードHSTS関しては、確実性は高いが、1度登録が完了すると、例えば「https~http」に戻したい場合があっても、HTTPで開けない状態になる。
もちろん、削除申請も受け付けているが、多少の時間もかかるようだ!
「max-age=31536000」単位は秒(任意の単位で変更可能です)
特に急いで登録しないとダメと言う訳でないので、その辺も踏まえて登録申請だね
12.外部リンクの修正
基本的には、全ての外部リンクを修正することは不可能ではあるが・・・・出来ることがあれば、修正しておく!
- 自身で、修正できる外部リンクは修正する
- 修正を依頼できるものがあれば依頼する
これは、特に重要項目ではないので、あまり執着せず、できる範囲で特に問題がない
xxx.ソーシャルリンクの引継ぎ
ソーシャルリンクのカウントの引継ぎについて
結論から言うと、カウントの引継ぎは難しそう?
「Twitter、Facebook、Google+、はてな」等の、ソーシャルボタンを設置してて、現状のカウント数を引き継いで表示させれない!
URLが変われば、ソーシャルシュアはリセットされ、新規スタートになる!
残念だが、仕方がないようです。
ただ、PHPの改変によって、「カウント数を引き継いだように見せかける」
ことができるみたいだが、面倒くさそう!デメリットもあり完璧な解決策ではないね
WordPressを使っている場合は、「SNS Count Cache」というプラグインで、
シェア数を「https」に引き継げる機能があり復活させられるようだ!