サイトを常時SSL化しました !作業覚書 comunica | 2017年12月26日 2017年12月26日 コムニカのWebサイトを運用しているサーバーで、無料で使えるSSLサーバー証明書「Let’s Encrypt」を使うことができます。 今まで、SSLを使っていなかったのですが、「SSL通信」が話題に上がったのをきっかけに、このサイトもSSLを使うことにしました。 最近はWebサイトの「なりすまし」や「盗聴」、「改ざん」などが問題になっていて、特に個人情報を扱うサイトでは、それを避けるための「保護」が必要です。 SSLは、Secure Sockets Layerの略で、インターネット上の通信を暗号化するものです。通信を暗号化することで、ユーザーが安全にWebサイトを閲覧することができます。 これまでSSLを使うには月々のお金がかかりましたが、ここ最近、レンタルサーバー会社が無料で使えるSSLを提供し始めました。クレジットカード情報を扱うようなサイトでは旧ベリサイン(現・シマンテック・ウェブサイトセキュリティ)などのSSLが必要かもしれませんが、小規模なサイトや個人のサイトであれば、この無料のSSLで十分です。 コムニカのサーバーのあるさくらサーバーでは、コントロールパネルから簡単に申し込みができます。 今までのアドレス、”http”の部分に”s”を付けて、”https”から始まるアドレスにアクセスできればOKです。ブラウザのアドレスバーには「保護された通信」と表示されるようになります。 SSL設定後のWordPressの変更 ただし、申し込んだだけでは、まだ完全に保護されたサイトにはなりません。 WordPressで作られたWebサイトの中には、それまでの”http”から始まるリンクや、画像がありますので、それを全て”https”に書き換えなければなりません。 まずは、WordPressのダッシュボードのアドレスを”https”に変更します。一旦ログアウトされるので、もう一度ログインすると、ダッシュボードのアドレスも”https”から始まるアドレスになっています。 それから、コンテンツ内の投稿画像やサイト内リンクの”http”から始まるものを全て”https”に変更していきます。ウィジットなど手動で設定しているリンクや画像のアドレスも変更が必要です。 ……といっても、1つ1つ修正するのは大変なので、投稿ページや固定ページは、”Search Regex“と言うプラグインを使って置き換えます。プラグインをインストールすると、ダッシュボードのツールから”Search-Regex”が選べるようになります。 それでも、時々、取りこぼしがあるので、確認しながら修正をしてゆきます。投稿ページと固定ページ以外はプラグインは置き換えてくれないので、編集画面で設定し直します。 この作業が完了すると、晴れてサイト全体が「保護されたページ」となります。 あとは、通常の”http”でアクセスしてきたユーザーを”https”の方へリダイレクト(301リダイレクト)させるコードを htaccessファイル に追記すればOKです。 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$ RewriteRule ^(.*)$ https://ドメイン名/$1 [R=301,L] </IfModule> ハイ、これで完了と行きたいところですが、確認してみるとトップページ以外にCSSは適用されておらず、リダイレクトもされずエラーになります。 ひぃぃぃ! と思わず叫んでしまいました。 さくらサーバーは注意が必要 調べてみると、さくらサーバーの場合は、もう一手間。 ……ということで、「SSLのサイトだよ〜」と認識させるコードをwp-config.php に追記。 if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) { $_SERVER['HTTPS'] = 'on'; $_ENV['HTTPS'] = 'on'; $_SERVER['HTTP_HOST'] = 'ドメイン名'; $_SERVER['SERVER_NAME'] = 'ドメイン名'; $_ENV['HTTP_HOST'] = 'ドメイン名'; $_ENV['SERVER_NAME'] = 'ドメイン名'; } これについては、いろいろな方が記事にしているので、つまづいた方は検索してみると良いかと思います。 とりあえず、コムニカのサイトはこれで無事、常時SSL化しました!