あなたのサイトでの HTTPS の有効化

From Joomla! Documentation

This page is a translated version of the page Enabling HTTPS on your site and the translation is 100% complete.

SSL/TLS とは何ですか?

トランスポート層警備 (TLS) は、セキュア ソケット レイヤー (SSL) の後継ですが、多くの人は今でもこれを SSL と呼んでいます。 インターネットを閲覧している時に、URL の横にロック アイコンが表示されている事にお気づきですか? これは、その ウェブサイトに送信する全てのデータが暗号化されて送信される事を意味します。そのため、ネットワークをハッキングしてリクエストを傍受出来る人物は、データを一切閲覧出来ません。閲覧出来るのは、アクセスしている URL だけです。

TLS を使用する理由

Google(および他のほとんどの検索エンジン)は現在、「https」を使用しているサイトを優先的に扱います。[1]さらに、多くのブラウザは、「https」を使用していないフォーム(ログインフォームやお問い合わせフォームなど)のあるウェブサイトにフラグを付けます。[2]

TLS を設定するにはどうすればよいですか?

証明書を設定する最も簡単な方法は、ホストに設定を依頼する事です。

使用する適切な証明書は、ウェブサイトで必要な警備保護によって異なります。最も安価で簡単なオプションは、「Let's Encrypt」 を使用する事です。これは無料で、ホストによっては、「cPanel」 または 「Plesk」 ホスティング ダッシュボードから直接構成出来る場合がよくあります。

専用 IP と SSL 証明書を購入した場合は、ホストに依頼して署名して貰い、適切な場所にインストールして貰います。

全てのトラフィックを「https」にリダイレクトするにはどうすればいいですか

ジュームラ!の場合

「https」トラフィックを強制する最も簡単な方法は、ジュームラ!内で実行する事です。「グローバル設定」には、「HTTPS を強制」オプションがあり、管理者のみまたはサイト全体で HTTPS を強制出来ます。後者をお勧めします。

Image Showing the Force HTTPS option in the Joomla 3.x default backend template
Image Showing the Force HTTPS option in the Joomla 3.x default backend template

「.htaccess」の場合

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [QSA,R=301,L]
<IfModule !mod_ssl.c>
Redirect permanent / https://www.yourdomainname.com
</IfModule>

さらに複雑な「.htaccess」の例

URL に「abc/def」または「ghi」が含まれるページで HTTP から HTTPS に切り替えるには、次のようなコードを追加します。

コード:

RewriteCond %{HTTPS} off
RewriteRule ^(abc/def|ghi)(.*)/?$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]

...URL に「home」または「help」が含まれるページで HTTPS から HTTP に切り替えるには、次のようにします。

コード:

RewriteCond %{HTTPS} on
RewriteRule ^(home|help)(.*)/?$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]

特定のフォルダーで SSL を強制する場合は、その特定のフォルダーに配置された「.htaccess」ファイルに以下のコードを挿入します。

コード:

RewriteEngine On
RewriteCond %{REQUEST_URI} folder
RewriteRule ^(.*)$ https://www.example.com/folder/$1 [R,L]

フォルダー参照を実際のフォルダー名に変更して下さい。次に、「www.example.com/folder」を、SSL を強制する実際のドメイン名とフォルダーに置き換えて下さい。