エックスサーバーは常時SSLにするために「.htaccess」の編集が必要でした

この記事は約6分で読めます。

.htaccessエックスサーバーは常時SSLにするために「.htaccess」の編集が必要でした。なにも編集しないと、「http://」と「https://」が混在した状態になります。ややこしいですが「s」がつくとセキュリティが確保された暗号化通信になりますが、「s」がつかないほうは通信の暗号化ができていません。そのため警告が表示されます。
サーバー側で「http://」でも表示が可能な状況にしておくと「保護されていない通信」という警告が表示されたり、ページそのものが閲覧できなかったりする場合があります。
ですから、必ず「https://」で表示するようにしましょう。(このことを常時SSLといいます)

エックスサーバーの常時SSL

「セキュリティ保護なし」という表示

上記のように「セキュリティ保護なし」とか「保護されていません」という表示が出る場合はSSL通信になっていません。
その原因は、そもそもSSL証明書が発行されていないWEBサイトなのか、SSL証明書は発行されているのに「https://」からではなく「http://」からのURL名で表示しているかのどちらかです。

SSL証明書が発行されているのに「保護されていません」という表示がされる場合は、URL欄が「https://」ではなく「http://」になっているかもしれません。

なお、https://から始まるURLなのに「保護されていません」と表示される場合は「混合コンテンツ問題」が起きていますので、原因と解決方法が別になります。
混合コンテンツ問題について

SSL表示の「https://」に強制リダイレクトする

SSLになっているはずなのに「http://」で表示されることで「保護されていません」という表示がされるような場合は、「http://」にアクセスがあったら強制的に「https://」のほうを表示するようにします。

これを強制リダイレクトというような言い方をすることがあります。

その設定方法はサーバーで「.htaccess」を編集します。

ここではエックスサーバーの例で解説します。

エックスサーバーの「.htaccess」編集

エックスサーバーのマニュアルに解説がありました。

WEBサイトの常時SSL化
https://www.xserver.ne.jp/manual/man_server_fullssl.php

このページには「.htaccess」に

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

を追加するように説明がありました。

エックスサーバーの管理画面から編集できます

エックスサーバーの管理画面にログインし、「設定対象ドメイン」を選択したパネルトップの画面にはメニューの一覧が表示されます。

「ホームページ」という項目の中に「.htaccessの編集」というのがありますのでクリックします。

実際に編集した「.htaccess」

実際に当サイトで編集した「.htaccess」は以下のとおりです。

常時SSL化の部分はわかりやすいように「#常時SSL化」というコメントをつけておきました。

# 常時SSL化
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # 常時SSL化ここまで

自動的に記述される部分

「# BEGIN WordPress」から「# END WordPress」までの部分は、WordPress用です。WordPressが更新されると自動的に書き換えられる場合があるため、この内容は変更しないほうがいいです。

あと、「XPageSpeed」は管理画面で「on」にしておくと自動的に追加される部分です。

最終的な「.htaccess」

最終的な「.htaccess」は以下のとおりになりました。

SetEnvIf Request_URI “.*” Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI “.*” Ngx_Cache_AllCacheMode

# 常時SSL化
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # 常時SSL化ここまで

# BEGIN WordPress
# “BEGIN WordPress” から “END WordPress” までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase /
RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] </IfModule>

# END WordPress

### BEGIN XPageSpeed – Do not edit the contents of this block! ###
XPagespeed on
<IfFile /var/xpagespeed/xpagespeed_ctl>
XPagespeed off
</IfFile>
### END XPageSpeed – Do not edit the contents of this block! ###

これで運用することにします。

ホームページ運営は必ずSSLにしましょう

SSLは通信の暗号化をすることでセキュリティを確保します。それだけではなく別の重要な意義があります。それは「詐欺サイト」や「なりすましサイト」を選別するしくみとして機能していることです。

SSL通信をするためには信頼性の高い団体から「SSL証明書」が発行されていなければなりません。悪意を持った詐欺サイトは基本的にSSLでの表示ができません。仮に不正な手段でSSL証明書を取得できたとしても、SSL証明書の期限がきたも更新ができません。

だから、詐欺サイトは持続的にSSLでのホームページ表示ができません。そのことが消費者の安全なホームページ閲覧という環境に寄与しているわけです。

sslbb515a92177cc00d3a94f1041a522d1b_s.jpg

ホームページは必ずSSLで運用しましょう。