Webサイトは常時SSLが当たり前の時代になりました。
今回の記事では、これまで
「http://example.com」や、「http://www.example.com」で運用してきたWebサイトを、「https://example.com」に転送する方法をご紹介します。
サイトをSSL化した場合に対策をしておかないと、ブックマークや、Googleの検索エンジンからの流入などから古いURLにアクセスされる可能性があります。
古いURLにアクセスが残ったままですと様々なデメリットがありますので、常時SSL化後には設定しておきたい項目です。
常時SSLとは
Webサイトを閲覧する端末と、Webサイト間の通信を常にSSL/TLSで暗号化をし、第三者に情報を読み取られないようにすることです。
WebサイトのURLは下記の通りです。
(非SSL)http://example.com
(SSL)https://example.com
転送方法
http:// もしくは、www 有り無しの転送はApache(Webサーバー)の、mod_rewriteという機能を使い転送を行います。
今回は下記の通り、3つのURLの場合に、https://example.comに転送を行います。
転送するURL:
http://www.example.com
http://example.com
https://www.example.com
転送先URL:
- Webサーバーにログインし「.htaccess」ファイルを作成します。
すでに.httaccessファイルが存在する場合は、手順2の項目を追記してください。* .htaccessの記述を間違えますと、サーバーが動作しなくなりますので、必ずテストサイトで検証してから、本番環境にアップロードしてください。
- .htaccessファイルを下記の通り編集します。
## # SymlinksはCPIサーバーをご利用の場合記述が必要です。 # CPIサーバー以外でも、mod_rewriteを有効にし、エラーがでる場合は、 # どちらかのオプションを有効にしてください。 ## # CPIサーバーでACE01_2015以降のサーバー Options +SymLinksIfOwnerMatch # CPIサーバーでACE01_2011以前のサーバー Options +FollowSymLinks <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # httpからの通信を、httpsにリダイレクト(www有り無し) RewriteCond %{HTTPS} off RewriteRule ^(.*$) https://example.com/$1 [R=301,L] # httpsからの通信でwww有りの場合、www無しにリダイレクト RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} ^www.example.com$ RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] </IfModule>
example.comを設定するURLに変更してください。
以上で転送設定が完了です。
証明書エラーが出る場合
「安全な接続ができませんでした」などのエラーが出る場合は下記を確認ください。
SSL証明書が正しく設定されているか。
Chromeブラウザの場合サイトにアクセスすると「鍵」マークのアイコンが出ます。アイコンが出ない場合は証明書が失効している可能性がありますので、Webサーバーの管理会社に問い合わせください。
https://www有りから、https://www無しへの転送の場合、www有りと無しの2つのURLに対してSSL設定が必要です。
1つのSSL証明書で、2つのURLにSSLを設定する場合は、SSL証明書がSANs対応している必要があります。
CPIサーバーの場合ですと、シマンテックとジオトラストの証明書がSANs対応しています。CPI SSLは対応していませんのでご注意ください。