WordPressでサイトを作る際にSSL・HTTPS化の意味がよくわからないという方もいらっしゃいます。
SSL(HTTPS)とは、インターネット上のデータを暗号化して送受信する仕組みで、ホームページやブログは基本的にSSL化が推奨されています。
今回はSSL化の意味やWordPressでSSLするメリット、実装手順を解説します。
SSL(HTTPS)とは。SSLの意味とメリット
SSLとは通信データを暗号化して安全に通信する仕組み
「SSL(Secure Sockets Layer)」とは、インターネット上でやり取りする通信データを暗号化して送受信する仕組みを指します。
http通信をSSL化(HTTPS)をすることで、通信データを保護し、クレジットカードのような他人に知られると悪用される重要な情報を守ります。
項目 | SSL化されていないURL | SSL化されているURL |
---|---|---|
プロトコル | http://example.com/ | https://example.com/ |
セキュリティ | 低 | 高 |
アドレスバーの表示 | 保護されていない通信 | 鍵マーク |
WebサイトをSSL化するとHTTPS通信になり、端末間の通信が暗号化されてWebブラウザ上でもアドレスバーに鍵マークが表示されて安心感があります。
HTTPSとSSLの違いは?
ここでは簡単のためHTTPS≒SSLとして説明していますが、厳密にはSSLは暗号化技術の一つで、HTTPSはHTTP通信・プロトコルをSSL化したものです。
HTTPSの他にもFTPやSMTPなど他のプロトコルもSSL化することができます。
- HTTP over SSL (HTTPS)
- FTP over SSL (FTPS)
- SMTP over SSL (STMPS)
基本的にどのサイトでもSSL化は推奨
SSLはほぼスタンダードの技術になってきており、個人ブログなど訪問者が重要な情報を入力するような場面がないWebサイトでも、最初にSSL化しておいた方が望ましいです。
また、SSL化はGoogleの検索順位のランキング要因にも関わる指標の一つとされているので、SEOの観点からもSSL化はしておきたいところです。
サイトのコンテンツを問わず、ユーザーによるウェブサイトへの接続を保護するために、HTTPS を導入することをおすすめします。 HTTPSでサイトを保護する | Google SearchConsoleヘルプ
SSL化されてない(HTTP)場合のリスク・デメリット
SSL化していない場合はインターネット通信は「http」通信で行われますが、通信データは平文(暗号化なしのテキストそのままの状態)で送信されています。
セキュリティの弱い公衆wifiなどでVPN(※注)なしでWordPressにログインする場合、悪意ある第三者によってログイン情報を盗聴されたり書き換えたりされるリスクがあります。
なお、SSL化されていない通信の場合は、アドレスの前に以下のマークと「保護されていない通信」と表示されます。
クリックすると下記のように警告表示され、利用者に不安を与えてしまう恐れもあります。
参考【個人向け】VPN接続とは・メリットデメリットや利用シーン
クライアントPCとWebサーバー間のSSL通信の流れ
クライアントPCとWebサーバー間のSSL化の流れは下記の通りです。
前述の章では、SSL(HTTPS)により通信の中身を暗号化して安全に通信する仕組みと説明しましたが、より具体的に説明すると、下記のような流れでSSL通信を実現しています。
■クライアントPCとWebサーバー間のSSL通信の流れ
- クライアントがWebサーバー(Webサイト)に「https://.....」でアクセスする際に、WebサーバーにSSL接続を要求します。
- サーバーはクライアントに対して、自身を証明するためのサーバー証明書(SSLサーバー証明書)を送付します。
- クライアントは、サーバーから受け取ったサーバー証明書を検証して、自身がアクセスしたWebサーバー本人の証明書か(なりすまされていないか)を確かめます。
- サーバー証明書がWebサーバー本人のものであることを確認とれたのち、クライアントはSSL通信用の共通鍵を作成して、送られてきたサーバー証明書に含まれるWebサーバーの公開鍵で共通鍵を暗号化します。
- クライアントは、暗号化した共通鍵をサーバーに送付します。
- サーバーは、クライアントに送付したサーバー証明書に含まれる公開鍵の対となる自身だけが持つ秘密鍵で、クライアントから送付された共通鍵を復号化します。
===この時点でクライアントとサーバーは両者共通の共通鍵を持つことになります。=== - 以降、サーバーとクライアントはデータのやり取りをお互い共通鍵で暗号化・復号化しながらデータ通信します。
WordPressでSSL化を実装するための流れ
最近の多くのレンタルサーバーの場合、無料SSLであればサーバー管理画面からSSL化の設定にチェックを入れてポチッとボタンを押すだけでできるものもあります。
有料のSSLを申し込んだ場合でも、サーバー側でサーバー証明書発行申請(CSR情報記入など)するだけで、あとはレンタルサーバーサイドで証明書発行からインストールまでしてくれるところも多いです(証明書インストールは自身で行うケースもあります)。
ここではエックスサーバーを例にWordPressでSSL化する手順をご紹介します。
あわせて読みたい記事
【STEP1】サーバーで独自SSLを設定する
エックスサーバーの管理画面にログイン後、サーバーパネルで「SSL設定」をクリックします。
ドメインが複数ある場合はドメイン選択が表示されます。SSL化対象のドメインを選択します。
「独自SSL設定追加」タブをクリックします。
補足)すでにSSL設定済みの方は
エックスサーバーでのドメイン追加時にSSL化設定をしていた場合は、最初からSSL化されています。
すでに対象ドメインがSSL設定済みになっている場合は、手順2「WordPressでSSLの設定をする」からスタートしましょう。
対象のドメインが選択されていることを確認して(通常はwwwありでOKです)、「確認画面へ進む」をクリックします。
確認画面が表示されますので、「追加する」をクリックします。
2,3分程度「取得中」と表示されるのでしばらく待ちます。
取得中の表示が消えたら「戻る」をクリックします。
SSL設定が「反映待ち」と表示されている間はしばらく待ちます。最大60分程度かかります。
何回か更新して反映待ち表示が消えたことを確認してOKです。
これでエックスサーバーでSSLの追加設定は完了です。次にWordPressの設定を行なっていきます。
【STEP2】WordPressでSSLの設定を行う
次に、WordPressでもSSLの設定を行います。ダッシュボードから「設定」を選択し「一般」をクリックします。
「WordPressアドレス(URL)」、「サイトアドレス(URL)」を「http://~」から「https://~」に変え、「変更を保存」をクリックします。(※)本操作で誤った内容を入力・保存すると、WordPressにアクセスできなくなる場合があるため、慎重に行いましょう。
一旦ログアウトされるので、再度ログインしましょう。
管理画面のアドレスがhttpsになっていることが確認できたらOKです。
【STEP3】「.htaccess」ファイルに常時SSLの設定を行う
最後に、常時SSLの設定を行なっていきます。
ここまでの設定だけでは、まだ「http」と「https」のURL両方にアクセスすることができる状態です。
そこで「http」のURLを「https」へ転送する設定を行っていきます(常時SSL)。設定を行うには、サーバー上にある「.htaccess」という重要なファイルを編集する必要があります。
ここでは、エックスサーバーのサーバー管理パネルの.htaccess編集機能から、.htaccessを編集する方法を紹介します。
再度、エックスサーバーのサーバーパネルを開いてください。「.htaccess編集」をクリックします。
複数のドメインをがある場合はドメインの選択画面が表示されます。SSL化対象のドメインを選択しましょう。
「.htaccess編集」をクリックします。
.htaccessファイルの内容が表示されます。記載内容はご利用の環境によって異なる場合があります。元々ある記述は消さないでください。
.htaccessに書き加えるコードは、以下のとおりです。コピーしてください。
1 2 3 |
RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
コピーしたコードを一番上の行に貼り付けます(元々合った記述は1文字も消さないようにしてください)。「確認する」をクリックします。
「実行する」をクリックします。
1 2 3 |
RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
- 「RewriteEngine」とは、「有効(ON)・無効(OFF)の設定」で、「有効(ON)」にします。
- 「RewriteCond」とは、「条件を設定する」という意味です。
- 「 %{HTTPS} !on 」とは「httpsがonでない場合(SSLではない場合)」という意味です。
- 「RewriteRule 」とは、「ルールを設定する」という意味です。
- [ R = 301 , L ]の「R = 301」は「永続的に転送する」という意味であり、「L」は「ルールを終了する」という意味です。
以上のコードで「http」でアクセスがあった場合、「https」へ転送しますというルールを設定しています。
最後に「http://自分のドメイン名」でアクセスしてみましょう。httpsにリダイレクトされて入れば完了です。
【有料SSLの場合】CSR発行からサーバー証明書の発行の流れ
有料のSSLを利用する場合、CSR情報を入力してサーバー証明書の発行するという手順を取ることが多いです。CSRとは、認証局へのサーバー証明書発行要求のことです。
Webサーバーの所有者が、CSRを生成して認証局にサーバー証明書発行の申請依頼に利用します。認証局がCSRに署名をしてサーバ証明書を発行します。
CSR発行からサーバー証明書の発行の流れは下記の通りです。申請者がCSRを作成して認証局に署名を依頼してサーバー証明書を発行して、(サーバーサポート又は利用者本人が証明書を)サーバーにインストールします。
■CSR作成からSSL化の流れ
- サーバー側で公開鍵・秘密鍵を生成して、CSRを作成する(CSRには、組織情報や対象サイト情報(URL)や公開鍵が含まれている)
- CA(認証局)にCSRを送付して、サーバー証明書の作成を依頼する。
- CAによってサーバー証明書が発行される。サーバー証明書には、組織情報や対象サイト情報(URL)、公開鍵、証明書の有効期限が含まれている
- サーバー証明書をサーバーにインストールする(所定の場所に格納する)
====ここまででサーバー管理者側での基本作業は完了==== - 必要に応じて.htaacessで常時SSLの設定や、WordPressを利用の場合などはアプリ側の調整設定を行う。
サーバー認証の種類「ドメイン認証」「企業認証」「EV認証」
サーバー証明書には、SSLサーバー申請者の本人確認として、「ドメイン認証(DV認証)」「企業認証(OV認証)」「EV認証」の3つの方式を提供しています。
最近では無料SSLが多くなってきましたが、SSLの種類にはドメインや組織の実在証明(信頼できる組織か否かの正確な証明書)をするようなより厳格なSSLもあります。
認証方式 | 説明 | ドメイン認証 | 実在認証 | 認証レベル | 費用 |
---|---|---|---|---|---|
ドメイン認証SSL (DV認証) |
申請者が対象ドメインの所有者かどうかの本人確認をとった方式 | ◯ | × | ★ | ★ |
企業認証SSL (OV認証) |
DV認証に加え、実在する企業なのか書類や電話で確認を取る方式 | ◯ | ◯ | ★★ | ★★ |
EV認証 | OV認証と同様(より厳格な審査)。 | ◯ | ◯ | ★★★ | ★★★ |
ドメイン認証SSL(DV認証)
ドメイン認証SSL(DV認証)とは、SSLの申請者がドメインの所有者であることを証明するものになります。
3つの認証方式の中では1番簡単に申請・発行することができ、料金も低価格で導入できます。※無料のSSLはも「ドメイン認証型のSSL」の一つです。
ドメイン認証SSLの問題点として、ドメインの所有者自身が架空業者などの悪意ある人であれば情報が悪用される可能性がある点です。
そこで、より厳格な審査方式として、その企業が存在するか、DV認証の内容に加えて組織の所在地や会社名を確認するプロセスを必要とする方式として「企業認証SSL」や「EV SSL」というものが存在します。
企業認証(OV認証)とEV認証
OV認証とEV認証は、上記のDV認証の内容に加えて組織の所在地や会社名を確認を必要とするものです。
EV認証はOV認証よりも世界的なガイドラインに基づき、より厳しい審査を得て発行されます。
企業認証SSLやEV認証を使ってより厳密な証明書を発行することで、そのサイト運営者が確かに実在する会社・組織なのかを確認することができます。
レンタルサーバーの「ConoHa」やドメイン取得サービスの「お名前.com」など、数々の有名サービスをリリースしている「GMOインターネット株式会社」コーポレートサイトのサーバー証明書を確認してみましょう。
DV認証と違い、ドメインを所有している組織の所在地や会社名など詳しい内容が記載されていますね。
ドメイン認証では、Webサイト運営者自身が悪意ある人間・組織かどうかまで判断できません。
そんな時にOV認証やEV認証を利用することで、ちゃんと自社の組織が運営するサイトだと利用者にわかってもらえるようになります。
まとめ
まとめです。今回はSSL化の意味やWordPressでSSLするメリット、実装手順を解説します。
SSL(HTTPS)とは、インターネット上のデータを暗号化して送受信する仕組みで、ホームページやブログは基本的にSSL化が推奨されています。
項目 | SSL化されていないURL | SSL化されているURL |
---|---|---|
プロトコル | http://example.com/ | https://example.com/ |
セキュリティ | 低 | 高 |
アドレスバーの表示 | 保護されていない通信 | 鍵マーク |
SSL化はほぼスタンダードの技術になってきており、GoogleもSSLを推奨しています。ホームページ・ブログを始めたばかりの方も、最初からSSL化しておきましょう。
今回は以上になります。最後までご覧いただきありがとうございました。
あわせて読みたい記事