常時SSL化の設定方法

Welcartで運営するネットショップを、常時SSL化(常にhttps://でアクセス)する手順を紹介します。

常時SSL化の手順

  1. SSLをサーバーにインストールする
  2. WordPressの設定を変更する
  3. Welcartの設定を変更する
  4. http:// でのアクセスを https:// にリダイレクト


常時SSL化の手順はこのようになります。どれも必要不可欠な作業ですが、間違えるとアクセスできなくなることもあるので慎重に行いましょう。

1.SSLをサーバーにインストールする

「独自ドメインに対してSSL証明書を取得してサーバーにインストールする」なんて作業は、私も含めサーバーエンジニアでない人にとっては避けて通りたいところですよね。
でも、最近ではとても簡単にSSLをインストールできたり、無料のSSLを利用できたりしてとても便利になりました。
無料といっても共有SSLではありません。Let’s Encrypt というやつですね。
このSSLでクレジット決済が行えているサイトも拝見しました。いつ使えなくなるか少々不安はありますが、小規模サイトにとっては強力な味方ですよね。

とにかく、ネットショップを運営するならば、共有ドメインと共有SSLなんていう選択はやめましょう。
独自ドメインで常時SSL化、これが正しい道です。

この簡単にSSLをインストールできる便利な操作画面を持ったサーバーは、主に共有(共用)サーバーに多く見られます。
ただ、サーバー会社によって操作方法が異なり、この記事でそれらを解説することはできません。
もちろん私も、全てのサーバー会社を経験したわけではありませんので、SSLのインストール方法については、ご利用のサーバー会社のドキュメントを見るか問い合わせてみてください。

無事SSLがインストールできたら、サイトにアクセスして確かめてみましょう。
もしWordPressがインストールされているのでしたら、このURLにアクセスすると確認できます。

https://*******.com/wp-content/
もしくは
https://*******.com/wordpress/wp-content/

wp-contentフォルダには空のindex.phpが置いてありますので、それにアクセスしてみるという事です。
画面は真っ白ですが、例えばChromeでしたら、アドレスバーに「保護された通信」という緑色の文字が見れます。

SSLのインストールは、なかなか自分で行うのは難しいかもしれません。
しかも、毎年更新作業が必要です。
専門の業者に任せてしまう方が、早くて安全かもしれませんね。

クレジットカード決済を行うならば

共有サーバーのお話をしましたが、クレジット決済を行う場合、一部の共有サーバーは利用ができないので注意が必要です。
今のところ私が確認しているのは、お名前.comとロリポップの安いプランです。
もしかしたら上位プランではできるのかもしれません。
そもそもクレジット決済を行うには、それ相応のサーバースペックが必要となるので、これらのサーバー以外でも、料金で言えば月額500円以下といった安価なサーバーは、クレジット決済ができないと思った方が無難です。

どのサーバーをチョイスすべきかについては、改めてTipsで紹介したいと思います。
もし、VPSや専用サーバーを使っているのに、度々カード決済に失敗して困っているという方がいましたら、それはサーバー自体に原因がある可能性が高いです。最高の環境をご用意しますので弊社にご連絡ください。

2.WordPressの設定を変更する

常時SSL化を行うときのWordPressの設定はとても簡単です。
一般設定の2つのURLを、https://で始まるよう変更するだけです。

HTTPSおよびSSL関連のプラグイン、つまり強制的にhttps://のURLに変換するタイプのプラグインは使わないようにしましょう。クレジット決済でエラーになる可能性があります。プラグインを使わずとも、このURLの設定だけで十分です。


注意
この「WordPress アドレス (URL)」を、http://からhttps://に変更すると、再ログインを求められますので、慌ずもう一度ログインしましょう。ただし、URLそのものを間違ってしまうと、管理画面に入れなくなってしまいますので注意が必要です。万が一、URLを間違えて管理画面にアクセスできなくなってしまった場合は、データベースを直接修正するしか方法はありません。

このWordPressのURLの設定は本当に必要か

このURLを変更せずに運用しているサイトを時々見かけます。
実はこのURLを変更せずとも、手順3のリダイレクトを行えばhttp://でアクセスしてもhttps://に自動的に切り替わります。
しかし、利用しているプラグインの中には、WordPressに設定されているURLをそのまま利用している物もあり、その場合は、セキュアなコンテンツを利用していないといったエラーが出ることになります。
あるいはJavaScriptが読み込まれず、想定した動作をしないという事にもなるかもしれません。
ですので、WordPressのURLを変更するのは必須だと思った方が良いのです。

3.Welcartの設定を変更する

常時SSL化する場合、Welcartのシステム設定の「SSLを使用する」というオプションはチェックを外します。

Welcartのこの「SSLを使用する」という言い回しが悪くて、多くのユーザーの皆さんを混乱させてしまっていることをお詫びします。この「SSLを使用する」を正しい言い方に直すと、「SSLと非SSLの切り替えを行う」という事になります。従いまして、常時SSL化する場合は「SSLを使用する」のチェックを付けないでください。

WCEX Mobile プラグインは必要か

SSLと非SSLの切り替えを行なっていた時代は、スマホのセキュリティー上 WCEX Mobile プラグインが必要でした。しかし、レスポンシブデザインテーマを使っているサイトでは、常時SSL化することでこの機能は要らなくなりました。

PC専用テーマとスマホ専用テーマを切り替えている場合は、WCEX Mobile プラグインはデバイスチェンジャーとして利用することはできます。ただ、デバイス切り替えプラグインは無料でもありますので、わざわざ WCEX Mobile を購入する必要はないのです。

もし常時SSL化を行い、WCEX Mobile プラグインでデバイス切り替えだけに利用しようとする場合は、下記の設定に注意が必要です。


「SSLを無効にする」にチェックを入れてください。これは、「SSLと非SSLの切り替えを無効にする」という意味になりますので、煩わしくて申し訳ないのですが、ここは無効にするという事になります。

4.http:// でのアクセスを https:// にリダイレクト

手順2で、WordPressの2つのURLをhttps://にしましたが、実はこれを行っても、フロントページをhttp://でアクセスするとそのまま暗号化なしでページが表示されてしまいます。https://に切り替わらないのです。そこで、サーバー側で強制的にhttps://に切り替える設定が必要になります。特に、途中から常時SSL化を行ったショップでは、Googleなどのインデックス(しばらくすると更新されます)も、お客様のブックマークもhttp://なので、非SSLのアクセスは絶えません。必ずリダイレクトの設定は行いましょう。

Apache の場合

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

これは一般的な記述です。共有サーバーの場合はこれではうまく行かない場合があります。

例えばさくらサーバーの場合

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://ドメイン名/$1 [R=301,L]
</IfModule>

各サーバー会社で異なる場合がありますので、サーバー会社のマニュアルを参照してください。