SSL/TLSコラム

常時SSL化の方法について

http://からhttps://にリダイレクト(常時SSL化)

常時SSL化とは、特定のページだけでなくWEBサイト全体を常にSSLで運用します。

常時SSLのための特別な設定というものはなく、すでにSSLを設定されているのなら、すべてのページがSSLでアクセスされるようにWEBサイトをデザインするだけで、どのWEBサイトも常時SSLになります。

しかし、そのままでは、SSLでないURLにもアクセスできてしまいます。非SSLのURL(http://~)にアクセスされたなら、SSL化されたURL(https://~)に転送してあげるのが適切です。

以下では、「http://~」から「https://~」に転送する設定について説明します。

Plesk Onyxなどがインストールされているサーバの場合(推奨)

コントロールパネルから簡単に設定できます。

(1)「ウェブサイトとドメイン」から「ホスティング設定」をクリック。

(2)「SEO に対応する HTTP から HTTPS への恒久的 301 リダイレクト」にチェックを入れる。

(3)「OK」をクリック。

Windowsサーバ(IIS)の場合

ドキュメントルート(/httpdocsなど)直下のweb.configにリライト設定を記述します(IIS 7.0以降)。

<configuration>
   <system.webServer>
         :      :
         :      :

      <!-- http:// を https:// にリライト ここから -->
      <rewrite>
         <rules>
            <rule name="Redirect to HTTPS" stopProcessing="true">
               <match url="(.*)" />
               <conditions>
                  <add input="{HTTPS}" pattern="^OFF$" />
               </conditions>
               <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
            </rule>
         </rules>
      </rewrite>
      <!-- ここまで -->

         :      :
         :      :
   </system.webServer>
</configuration>
Linuxサーバ(Apache)の場合

ドキュメントルート(/httpdocsまたは/public_htmlなど)直下の.htaccessファイルにリライト設定を記述します。

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /

  # HTTPでアクセスされた場合、HTTPSにリダイレクト
  RewriteCond %{HTTPS} off
  RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

WordPressを利用していて、パーマリンクのためのリライト設定がある場合は、以下のように変更してください。

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond %{HTTPS} off
 RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 RewriteRule ^index\.php$ - [L]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.php [L]
</IfModule>
ページ上部へ戻る