WordPress

【WordPress】初心者の独自SSL(https)化してみよう

2020年3月25日

【WordPress】SSL(https)化してみよう!のアイキャッチ画像

当ブログを独自SSL化したので、SSLとは何か?
SSL化(https化)までの手順をまとめようと思います。

SSL/TLSとは

SSLとは

SSL(Secure Sockets Layer)とは、ブログなどのWebサイトと、そのWebサイトを見ている人との情報のやり取りを暗号化する仕組みです。

SSL化されていない通信だった場合、見ているWebサイト上に書き込んだ内容をそのまま盗み見ることが可能となり、クレジットカード情報やパスワードなどの大切な情報を簡単に盗まれてしまうのです。

TLSはSSLと同じことで、SSLのバージョン3.0以降がTLS1.0と変更されました。

SSLという名称のほうが広く認知されているため、SSL/TLSと併記されることが多いようです。

SSLを利用する場合、SSLサーバ証明書をサーバにインストールする必要があります。

SSL化されていないデメリット

盗聴

盗聴を表す画像

Webサイトに送受信する内容を盗み見られることです。

実際に情報や何かを盗まれるわけではないので、当事者は気づきにくい特徴があります。

知らない間に犯罪のターゲットになったり、知らないところからスパムメールが届けられるなどの被害があります。

 

なりすまし

なりすましを表す画像

例えば、私のブログを「運営者のたべばか」でない他の人が、不正にアクセスをしてブログを乗っ取ってしまうことです。

まだ私のブログは重要な情報は少ないかもしれませんが、顧客情報やクレジットカードを管理しているECサイト(商品を販売するWebサイト)などでなりすましの被害を受けてしまうと、多くの人たちに迷惑をかけて、信頼を失ってしまいます。

 

改ざん

改ざんを表す画像

Webサイトに記録された情報や、送信された入力された情報の形式や内容、時期(送信時期、記録時期)などが変更されてしまうことです。

例えばECサイトの注文内容を書き換えて、違う商品が届いたり、注文数が異なっていたりするなどの被害を受けてしまいます。

 

SSLの種類

SSLには大きく分けて独自SSL共有SSLがあります。

さらに、独自SSLはドメイン認証型SSLサーバ証明書企業認証型SSLサーバ証明書EV認証型SSLサーバ証明書の3つに分かれます。

共有SSLとは

サーバ会社のSSL証明書を複数の利用者で共有して利用することです。

サーバ会社のSSL証明書を使用するため、導入すると専用ドメインが割り当てられ、多く場合ドメイン名にサーバ名が入ってしまいます。また、レンタルサーバーが共有SSLの提供を停止した場合の対応が面倒になるデメリットがあります。

独自SSLとは

ドメイン認証型SSLサーバ証明書 ドメイン所有者確認
企業認証型SSLサーバ証明書 ドメイン所有者確認 運営組織の実在性確認
EV認証型SSLサーバ証明書 ドメイン所有者確認 運営組織の実在性・物理的実在性の確認 組織活動、承認者確認

独自SSLとは、取得した独自ドメインに発行するサーバ証明書です。

ドメイン認証型SSLサーバ証明書

サイトのドメイン名の所有名義が確認できれば取得できます。Webサイトの運営組織の実在性の確認を必要とせず、ドメイン名を所有していれば簡単なオンライン審査により取得できます。

誰が所有しているサイトなのかわからないため、SSLの中では最も低い存在証明書となります。

  • 無料の証明書について

現在ではアメリカの非営利団体ISRG (Internet Security Research Group)が提供するLet's Encryptという無料のSSLサーバ証明書を利用することができますが、有料のSSL証明書には劣ると言われます。

企業認証型SSLサーバ証明書

Webサイト運営組織が実在することを確認したうえで発行されるSSLサーバ証明書です。

本当に実在する企業や組織なのかを登記事項証明書(不動産が「本当にその人の所有物なのか?」を証明する書類)や第三者データベース(帝国データバンクやDUNS番号などの企業情報が登録されています。)に加えて、企業に実際に電話することで確認します。

EV認証型SSLサーバ証明書

EV(Extended Validation)認証型の場合、企業認証型よりもさらに厳格にWebサイト運営組織の確認を行います。

企業認証型の確認事項に加えて、署名権限確認者の在籍確認(SSL証明書の申請手続き担当者が本当に組織に在籍しているか?)や、申請責任者確認書などの確認が必要となります。

独自SSLの中で最も信頼のおけるSSL証明書です。

SSLが必要な理由


Google様がこのように申しております。

HTTPS ページが優先的にインデックスに登録されるようになります

2015年12月18日金曜日

Google では常にユーザーのセキュリティを最優先に考え、長年にわたってウェブの安全性の向上やブラウジング体験の改善に取り組んできました。Gmail、Google 検索、YouTube では以前からセキュアな接続を実現しており、昨年は、検索結果での HTTPS URL の掲載順位を若干引き上げる取り組みにも着手しました。ウェブのブラウジングはウェブサイトとユーザーとの間の私的な体験となるべきであり、傍受、中間者攻撃、データ改ざんの対象となってはいけません。Google が「HTTPS everywhere」の推進に取り組んできたのはこのためです。

この流れの一環として、Google は、より多くの HTTPS ページを探すよう、インデックス システムを調整していることをお知らせします。具体的には、HTTP ページに対応する HTTPS ページのクロールを開始します。これは、対応する HTTPS ページがどのページからもリンクされていない場合にも対象となります。同じドメインの 2 つの URL が同じコンテンツを掲載していると思われ、かつ、両者が異なるプロトコル スキームで配信されている場合、通常、以下の条件を満たしていれば HTTPS URL を選択してインデックスに登録します。
引用:Google ウェブマスター向け公式ブログ

つまりはSEOの面でSSL化(https化)すると少しだけ優遇するよ!ってことです。
将来的には非SSL化(httpのまま)のブログだとSEOの面でペナルティを受けてしまう可能性があるので、早いうちに対応することをオススメします。

結局どのSSLにすればいいの?

個人のブログなどであれば、独自ドメインであるドメイン認証型SSLサーバ証明書の利用をオススメします。

現在では多くのレンタルサーバーで無料の独自SSL(ISRG が提供するLet's Encrypt)を取得することができます。

なお、顧客の個人情報を取り扱うようなWebサイトでは有料の独自ドメインを取得した方が良いでしょう。

独自SSLを設定してみよう

それでは、実際に独自SSLを設定していきましょう。

まずはWordPressをバックアップ!


※作業を行う前に必ず実施しましょう。

 ブログに不具合が生じることがあります。


バックアップの方法についてはこちらの記事で紹介していますので、参考にしてみてください。

WordPresss初心者でも簡単!UpdraftPlusでバックアップのタイトル画像
WordPress初心者でも簡単!UpdraftPlusでバックアップ

続きを見る

ロリポップ!(レンタルサーバー)側での設定

当ブログではロリポップ!サーバでのブログ開設をご紹介してきましたので、ロリポップ!サーバで無料独自ドメインを設定していきます。

ロリポップ!左メニューのセキュリティから独自SSL証明書導入を選択
出典:ロリポップ!
  1. ロリポップ!のユーザー専用ページにログインします。
  2. 左メニューのセキュリティより「独自SSL証明書導入」をクリックします。


    ロリポップ!SSL保護されていないドメイン出典:ロリポップ!
  3. 独自無料SSL(無料)の「SSL保護されていないドメイン」をクリックします。


    SSL設定作業中に変わります。出典:ロリポップ!
  4. 表示されたドメインの右横にある「独自SSL(無料)を設定する」をクリックすると、「SSL保護無効」から「SSL設定作業中」という表記に変わります。


    ロリポップ!SSLで保護されているドメイン出典:ロリポップ!
  5. 5分ほど待ってから、画面を再読み込みすると「SSL設定作業中」から「SSL保護有効」に変わります。
  6. 「http://」を「https://」に変更して自分のブログ(サイト)にアクセスできれば完了です。

WordPressでの設定側での設定

一般設定

サイトのURLが「http://」から「https://」変更されているので、すべて「https://」に変更していきましょう。


WordPress一般設定をhttps化する

  1. WordPressにログインします。
  2. 左メニューの設定から「一般」をクリックします。
  3. 一般設定のWordPressアドレス(URL)とサイトアドレス(URL)を「 http:// → https:// 」から始まるアドレスに変更てし、「変更を保存」をクリックします。
  4. 自動的にログアウトするので、もう一度ログインします。
  5. 管理画面のアドレスが「https://」から始まっていれば完了です。

内部リンクをすべてhttpsに変更する(Search Regex)

今度は内部リンクや画像のリンクを修正しましょう。
リンク切れを放置していると、見に来てくれた人が離脱してしまいます。

ページ数が少なければ1ページずつ確認して手動で内部リンクを修正できますが、たくさんの内部リンクや画像のリンクがある場合は、Search Regexを利用します。


※Search Regex使用時に「サイトで技術的な問題が発生しています」というエラーメールが届きますが放置してOKです。
詳しくはこちらの外部サイトを参照


Serch Regexプラグイン画像

  1. WordPressプラグイン「Search Regex」を追加します。
    ※プラグイン導入についてはこちらの記事を参照:
    【WordPress】未経験アラフォーのブログ開設!(プラグインの使い方&必須プラグインを3つ)
    【WordPress】初心者 プラグインの使い方&必須プラグインを紹介

    続きを見る




    WordPressのツールよりSearch Regexを選択する
  2. 左メニューのツールから「Search Regex」をクリックします。


    WordPressのSerchRegexでSearchPatternとReplacepatternを入力
  3. 「Search Pattern」に独自SSL設定前の「http://」で始まるURLを入力します。
  4. 「Replace pattern」に独自SSL設定後の「https://」で始まるURLを入力します。
  5. 下にある「Replace」ボタンを押します。
  6. 置き換え対象となるURLと、置き換え後のURLが表示されるので、問題がないか確認します。
    ※WordPressに不具合が生じる可能性があります。
     よく確認して実行するか、バックアップを行いましょう。
  7. 下にある「Replace&Save」をクリックすると修正が完了します。

.htaccessファイルの設定

.htaccess(ドット・エイチ・ティ・アクセス)とは

Apache(アパッチ)と呼ばれるサーバーを動かすためのソフトウェアがあるのですが、それを制御する設定ファイルです。

.htaccessを設定する目的

.htaccessに追記して、「http://」で始まるURLによってアクセスがあった場合に、変更後の「https://」で始まるURLに自動的に転送(リダイレクト)するようにします。

.htaccessを設定手順

  1. ロリポップ!のユーザー専用ページにログインします。



    ロリポップ!左メニューよりロリポップ!FTPを選択出典:ロリポップ
  2. 左メニューのサーバーの管理・設定より「ロリポップ!FTP」を開きます。



    .htaccessを開く出典:ロリポップ!
  3. WordPressをインストールしたフォルダを開きます。
  4. 「.htaccess」ファイルをクリックして、ファイルを開きます。
    ※「.htaccess」の内容をすべてコピーしてメモ帳などに保存しておきましょう。変更した内容に不備があった場合、ブログ(サイト)が表示されなくなったりします。もとに戻せるように必ず保存しましょう!



    .htaccessを編集します。出典:ロリポップ!
  5. 「.htaccess」に下記の内容を追加しましょう。
  6. 「保存する」をクリックして変更します。
  7. 「http://」から始まるURLで自分のブログ(サイト)にアクセスしてみましょう。「https://」から始まるURLに転送(リダイレクト)されれば完了です。

#リダイレクト-start
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#リダイレクト-end 

画像URLの変更(Database Search and Replace Script in PHP

保護されていない通信と表示されたページ

既にブログに画像を挿入している場合は画像のパスが「http://」で始まるURLのまま保存されているため、「このサイトは完全に保護されていません」と出ると思います。

記事に挿入された画像の情報はデータベース内に保存されているため、Database Search and Replace Script in PHPを使用してデータベースの中身を「http://」から「htpps://」に置き換えていきましょう。

Database Search and Replace Script in PHPを入手する

interconnect/itサイトのトップページ

出典:interconnect/it

  1. こちらのinterconnect/itというサイトにアクセスします。



    knowledge checkに入力する内容です出典:interconnect/it
  2. 画面を下にスクロールしていくと「Knowledge check」と書かれた下部に3つのチェックボックスがあるので、すべてにチェックを入れます。
  3. Nameに名前を入力します。
  4. Emailにメールアドレスを入力します。(Enter EmailとConfirm Emailに同じURLを入力)
  5. Submitボタンを押します。


    interconnect/itより自動送信されたメール内容
  6. 入力したメールアドレスにメールが届くので確認します。
  7. 「Download Search Replace DB v 3.1.0 here」と書かれたリンクをクリックするとダウンロードできます。
  8. ダウンロードしたZIPファイルを解凍すると「Search-Replace-DB-master」というフォルダができます。

サーバーに「Search-Replace-DB-master」フォルダを移動する

Search Replace DB masterをサーバーに格納する出典:ロリポップ!

ロリポップ!サーバーには直接フォルダを入れることができないので、今回はFileZillaというFTPソフトで、「Search-Replace-DB-master」を移動します。

WordPressをインストールしたフォルダの直下に格納します。
※「.htaccess」、「index.php」、「 wp-config.php」と同じ階層になります。

FileZillaの使い方についてはこちらの記事を参照:

 

Database Search and Replace Script in PHPでデーターベースのURLを書き換える


※このツールはデータベースの中身を書き換えるツールなので、悪意のある第三者に利用されるとブログを壊されたり、乗っ取られたりしてしまいます。使用後は必ず削除しましょう。


Search Replace DB masterのトップ画面です。

  1. Webブラウザ(Google ChromeやMicrosoft Edgeなど)を起動して「https://ドメイン名/ Search-Replace-DB-master」にアクセスします。


    Search Replace DB masterで置き換える内容を入力します。
  2. 「replace」に「http://ドメイン名」(変更前のURL)を入力します。
    ※当サイトでは「http://tabebaka.com」となります。
  3. 「with」に「https://ドメイン名」(変更後のURL)を入力します。
    ※当サイトでは「https://tabebaka.com」となります。



    Search Replace DB masterで置き換える内容を確認します。
  4. 「dry run」ボタンをクリックして置き換える内容を確認します。
  5. 確認後「live rum」をクリックします。
  6. 「Are you absolutely ready to run search/replace? Make sure you have Baked up your database!」と聞かれます、「OK」をクリックして、置き換えを実行します。


    Search Replace DB masterを削除します。
  7. 画面下の「delete me」をクリックしてツールを削除します。
  8. 「https://ドメイン名/ Search-Replace-DB-master」に再度アクセスして、削除が完了していることを確認しましょう!

    ※このツールはデータベースの中身を書き換えるツールなので、悪意のある第三者に利用されるとブログを壊されたり、乗っ取られたりしてしまいます。使用後は必ず削除しましょう。


    SSL化(https化)完了です。
  9. 自分のブログにアクセスして。鍵マークがあるか確認して完了です。

 

 

お疲れ様でした。

これでSSL化(https化)が完了しましたが、長くて疲れたと思います。

実際、ど素人の私だと色々悩んで5時間くらいかかってしまいました…。

稚拙な内容ではありますが、この記事の内容が少しでもお役に立てればと思っております。

-WordPress