WordPressの常時SSL化をプラグインを使わずにする場合の手順

全ページがhttps://のアドレスでアクセスできる常時SSL化ですが、サーバーが対応していてWordPressを使ってるなら、かなり簡単にできます。

基本的なWordPressのSSL化の流れは、

  1. SSL証明書を取得
  2. httpsでアクセス出来するようにサーバーを設定
  3. WordPressのURLをhttpsに変更
  4. 投稿や記事のURLをhttpsに変更
  5. httpからhttpsへのリダイレクトの設定

これだけです。

実作業時間としては1~2時間。反映するまでの待ち時間があるので、全体としても1~2日程度あれば完了します。

以下では、エックスサーバーの無料SSL証明書を使ったWordPressの常時SSL化を手順を紹介します。

注意

今回の説明はサイトがすべてWordPressで出来ている前提です。WordPress以外の部分がある場合は別の対応が必要になってくる場合がありますので、ご注意ください。

よくあるパターンとしては、LPがHTMLやPHPなどで出来ててWordPressじゃない、サイトはWordPressだけどメールフォームは別のCGIやPHPを使ってるなど。こういう場合は今回の方法だけでは対応できません。

SSL証明書の取得&サーバーをhttps://でアクセス出来るようにする

ここの内容はサーバーによって異なりますので、エックスサーバーの場合の説明します。

エックスサーバーのサーバーパネルにログインして、「SSL設定」をクリック。

エックスサーバーのサーバーパネルでSSL設定に入る
エックスサーバーのサーバーパネルで「SSL設定」に

処理対象ドメインの選択が出るので、SSL化するドメインを選びます。(今回の場合、「kyoueimizugi.com」です)

エックスサーバーのサーバーパネルで対象のドメインを選ぶ
対象のドメインを選ぶ

タブが2つあるので、右側の「独自SSL設定追加」をクリック。特に何もせずにそのまま「確認画面へ進む」をクリック。

エックスサーバーのサーバーパネルで独自SSLの設定をする
独自SSLの設定

確認画面が出るので、「追加する」で確定します。「SSL新規取得申請中です。しばらくお待ちください。」と出るので、ちょっと(1分くらい)待ちます。

「www.kyoueimizugi.com」に独自SSL設定を追加しました。で、完了です。

実際にhttpsでアクセス出来るようになるまでに1時間ほど必要ですので待ってください。続きは翌日とか午後からするようなスケジュールを組んどきましょう。

https://でアクセス出来るか確認する

エックスサーバーの場合、「SSL設定一覧」タブで状況確認できます。「反映待ち」の場合、まだ処理中です。

エックスサーバーのサーバーパネルのSSL設定一覧
サーバーパネルのSSL設定一覧

「反映待ち」がなくなった後で、https://のURLがあるので、クリックしてアクセスしてみてください。

Chromeの場合、httpsかどうかがわからないので、URLバーをクリックしてフルのURLを表示してhttps://になってるか確認してください。

iマークで「保護されてない通信」とでますが、この段階では問題ないです。サイトがちゃんと表示されてればOKです。

ブラウザのURL欄でhttpsを確認
ブラウザのURL欄でhttpsでのサイトの表示を確認

WordPressのアドレスをhttpsに変える

WordPressの管理画面にログインして、「設定」>「一般設定」に入って、

  • WordPress アドレス (URL)
  • サイトアドレス (URL)

の2箇所を「http」から「https」に変更して、「変更を保存」します。

WordPressの設定でhttpsにURLを変える
WordPressの設定でhttpsにURLを変える

ログアウトすると思いますので、もう一度ログインしてください。WordPressの管理画面はSSL化されてブラウザのURLバーに鍵マークがつくはずです。(サイトの方はまだです、管理画面だけです。)

WordPressの管理画面がSSL化された状態
WordPressの管理画面がSSL化された状態

WordPressの投稿や記事内のURLをすべてhttpsにする

WordPressの一般設定でhttpsにURLを変えましたが、記事や投稿など今までにエディタで書いた内容などは変更されませんので、これらを変更する必要があります。

データベースを直接修正したり、Database Search and Replace Script in PHPを使ったりする方法もありますが、一番簡単そうなSearch Regexプラグインを使った方法でやります。

WordPressの「プラグイン」>「新規追加」画面で「Search Regex」を検索してインストールして、有効化してください。特に設定すべき項目はありません。

WordPressのプラグイン「Search Regex」のインストール
WordPressのプラグイン「Search Regex」のインストール

「ツール」>「Search Regex」画面に入って、

  • 「検索」:「http://kyoueimizugi.com/」(旧URL)
  • 「置換」:「https://kyoueimizugi.com/」(SSL化後の新URL)
  • 「ソース」:「すべての投稿タイプ」「WordPress設定」「投稿のメタ情報」「ユーザーのメタ情報」

を入力してください。「kyoueimizugi.com」の部分は、自分のURLで。

WordPressのプラグイン「Search Regex」での置換設定
Search Regexでの置換設定

「検索」を押すと、見つかったものが画面に出ます。一応確認してください。意図しないものがある場合は、どっか間違ってます。(もしくは、「ソース」で対象を減らしてください)

WordPressのプラグイン「Search Regex」での「検索」結果画面
Search Regexでの「検索」結果画面

赤い「全て置換する」をクリックすると、進行バーが進みます。完了しました。になればOKです。

サイトがすべてSSL化されているか確認

サイトにアクセスして、ブラウザのURLバーの横に鍵マークが出てるかどうかを確認してください。

サイトのSSL化の確認
サイトのSSL化の確認

トップページ以外のページも、できればすべて確認してください。鍵マークが出てない場合は、ちゃんとSSL化出来てません。

鍵マークが出ない場合

鍵マークが出ない(SSL化出来てない、mixed contentsになってる)場合の原因の主なパターンは、

  • 固定ページ、投稿ページのURLの置換に失敗してる
  • ウィジット、メニューなどでhttpのURLを使ってる
  • テーマやCSSでhttpの画像やJavaScriptを読み込んでる
  • 外部サイトから画像やCSSを読み込む時にhttpになってる

など色々あります。

基本的には、サイト内で読み込んでいるもの(画像、CSS、JavaScriptなど)を全てhttpsにしないといけません。(リンクはhttpでも問題ないです)

リダイレクトの設定(.htaccess)

サイト内のすべてのページがSSL化されたのを確認したら、httpをhttpsへリダイレクトする設定をします。

これも色んな方法がありますが、一般的な.htaccessを使って処理します。エックスサーバーの場合、管理画面から変更できます。

左のメニューから「.htaccess編集」に入って、タブの右側「.htaccess編集」をクリック。すでにいくつか書かれてるはずなので、最初の方に

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

と入れてください。「確認画面へ進む」で「実行する」でOKです。

htaccessでのSSLリダイレクト
htaccessでのSSLリダイレクト

自分のスマホなどで、SSL化前のURL(「http://kyoueimizugi.com/」など)でアクセスしてみて、「https://kyoueimizugi.com/」に転送されることを確認してください。

これでWordPressの常時SSL化は完了です。何もなければ結構簡単です。

ただ、サイトの特定ページで鍵マークがちゃんと出ないとかになると、原因究明と対応に時間がかかる場合がありますので、余裕見ておいてください。

SSL化した場合のAnalyticsの設定

やらなくても大した影響はありませんが、Analyticsの設定もhttpsに変更しておきましょう。

プロパティ設定の「デフォルトの URL」のところで「https」を選んでください。

SSL化後のAnalyticsの設定
SSL化後のAnalyticsの設定

同じような項目がビューの設定にもありますので、ビューの方も変更してください。

SearchConsoleの設定がドメインプロパティではない場合は、「https://」でもプロパティを追加する必要があります。必要ならSearchConsoleも追加してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です