Apache で HTTP を HTTPS にリダイレクトする方法
HTTP (ハイパー テキスト転送プロトコル) は、ワールド ワイド ウェブ (WWW) でのデータ通信の基本プロトコルであるとともに、一般的なプロトコルです。 );通常は、Web ブラウザと Web ファイルを保存するサーバーの間で行われます。一方、HTTPS は HTTP の安全なバージョンであり、末尾の「S」は「安全」を表します。
HTTPS を使用すると、ブラウザと Web サーバー間のすべてのデータが暗号化され、安全になります。このチュートリアルでは、Linux の Apache HTTP サーバーで HTTP を HTTPS にリダイレクトする方法を説明します。
ドメインに対して Apache HTTP から HTTPS へのリダイレクトを設定する前に、SSL 証明書がインストールされていることと、mod_rewriteがあることを確認してください。 は Apache で有効になっています。 Apache で SSL をセットアップする方法の詳細については、次のガイドを参照してください。
- Apache の自己署名 SSL 証明書とキーを作成する方法
- CentOS/RHEL 7 に Let’s Encrypt SSL 証明書をインストールする方法
- Debian/Ubuntu に Let's Encrypt SSL 証明書をインストールする方法
.htaccess ファイルを使用して Apache で HTTP を HTTPS にリダイレクトする
この方法では、mod_rewrite が有効になっていることを確認してください。そうでない場合は、Ubuntu/Debian システムでこのように有効にしてください。
sudo a2enmod rewrite [Ubuntu/Debian]
CentOS/RHEL ユーザーの場合は、httpd.conf に次の行があることを確認してください (mod_rewrite サポート – デフォルトで有効になっています)。
LoadModule rewrite_module modules/mod_rewrite.so
ここで必要なのは、ドメインのルート ディレクトリで .htaccess ファイルを編集または作成し、http を https にリダイレクトする次の行を追加するだけです。
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
これで、訪問者が http://www.yourdomain.com
と入力すると、サーバーは HTTP を HTTPS https://www.yourdomain.com
に自動的にリダイレクトします。
Apache 仮想ホストで HTTP を HTTPS にリダイレクトする
さらに、すべての Web トラフィックにHTTPS の使用を強制するには、仮想ホスト ファイルを構成することもできます。通常、SSL 証明書が有効になっている場合、仮想ホスト構成には 2 つの重要なセクションがあります。最初のポートには、非セキュア ポート 80 の設定が含まれています。
2 番目は安全なポート 443 用です。 Web サイトのすべてのページで HTTP を HTTPS にリダイレクトするには、まず適切な仮想ホスト ファイルを開きます。次に、以下の構成を追加して変更します。
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.yourdomain.com
Redirect / https://www.yourdomain.com
</VirtualHost>
<VirtualHost _default_:443>
ServerName www.yourdomain.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
etc...
</VirtualHost>
ファイルを保存して閉じ、次のように HTTP サーバーを再起動します。
sudo systemctl restart apache2 [Ubuntu/Debian]
sudo systemctl restart httpd [RHEL/CentOS]
は、よりシンプルで安全なため、最も推奨されるソリューションです。
Apache HTTP サーバーのセキュリティ強化に関する以下の役立つ記事をお読みください。
- Web サイトを保護してカスタマイズするための 25 の Apache '.htaccess' の便利なテクニック
- .htaccess ファイルを使用して Apache で Web ディレクトリをパスワード保護する方法
- Apache のバージョン番号とその他の機密情報を非表示にする方法
- Mod_Security と Mod_evasive を使用して Apache をブルート フォース攻撃または DDoS 攻撃から保護する
それだけです!このガイドに関するご意見を共有するには、以下のフィードバック フォームをご利用ください。また、常に linux-console.net に接続できるようにしてください。