GNU/Linux >> Linux の 問題 >  >> Linux

ApacheにHTTPSを使用させる方法

こんにちは、みんな !このチュートリアルでは、ApacheHTTPをHTTPSに強制的にリダイレクトする方法を示します

Webサイトの所有者またはシステム管理者の場合、Apacheを定期的に扱っている可能性があります。実行する可能性のある最も一般的なタスクの1つは、HTTPトラフィックをセキュリティで保護された(HTTPS)バージョンのWebサイトにリダイレクトすることです。

要求と応答がプレーンテキストで送受信されるHTTPとは異なり、HTTPSはTLS/SSLを使用してクライアントとサーバー間の通信を暗号化します。

これは2つの異なる方法で確認できます。

私。仮想ホストの使用。

ii。 .htaccessの使用

始めましょう

仮想ホストの使用

仮想ホストディレクティブでは、サイトドキュメントルート(Webサイトファイルを含むディレクトリ)を指定したり、サイトごとに個別のセキュリティポリシーを作成したり、異なるSSL証明書を使用したり、リダイレクトを構成したりできます。

SSL証明書がドメインにインストールされている場合、そのドメインに対して2つの仮想ホストディレクティブがあります。 1つはポート80のサイトのHTTPバージョン用で、もう1つはポート443のHTTPSバージョン用です。

CentOSやFedoraなどのRed-Hatベースのディストリビューションでは、仮想ホストファイルは/etc/httpd/conf.dに保存されます。 DebianおよびUbuntuのようなその派生物では、ファイルは/etc/apache2/sites-availableに保存されます。 ディレクトリ。

ウェブサイトをHTTPSにリダイレクトするには、Redirectを使用します 「unixcop.com」の例で示されているディレクティブ

<VirtualHost *:80> 
  ServerName unixcop.com
  ServerAlias www.unixcop.com

  Redirect permanent / https://unixcop.com/
</VirtualHost>

<VirtualHost *:443>
  ServerName unixcop.com
  ServerAlias www.unixcop.com

  Protocols h2 http/1.1

</VirtualHost>

説明

上記のコードについて説明しましょう

  • VirtualHost *:80 – Apacheサーバーは、指定されたドメインのポート80(HTTP)で着信接続をリッスンします。
  • VirtualHost *:443 – Apacheサーバーは、指定されたドメインのポート443(HTTPS)で着信接続をリッスンします。

ServerName およびServerAlias ディレクティブは、仮想ホストのドメイン名を指定しています。必ずドメイン名に置き換えてください。 (この場合はunixcop.com)

強調表示された行、Redirect permanent / https://example.com/ HTTP仮想ホスト内で、トラフィックをHTTPSバージョンのサイトにリダイレクトします。

通常、HTTPSwwwバージョンのサイトをwww以外のバージョンにリダイレクトすることもできます。その逆も同様です。構成例は次のとおりです。

<VirtualHost *:80> 
  ServerName unixcop.com
  ServerAlias www.unixcop.com

  Redirect permanent / https://unixcop.com/
</VirtualHost>

<VirtualHost *:443>
  ServerName unixcop.com
  ServerAlias www.unixcop.com

  Protocols h2 http/1.1

  <If "%{HTTP_HOST} == 'www.unixcop.com'">
    Redirect permanent / https://unixcop.com/
  </If>

</VirtualHost>

上記のコードは、リクエストヘッダーにwwwドメインが含まれているかどうかをチェックし、www以外のバージョンにリダイレクトしています。

構成ファイルに変更を加えるときはいつでも、変更を有効にするためにApacheサービスを再起動またはリロードする必要があります

.htaccess ApacheWebサーバーのディレクトリごとの設定ファイルです。このファイルを使用して、Apacheがファイルが配置されているディレクトリからファイルを提供する方法を定義し、追加機能を有効/無効にすることができます。

通常、.htaccess ファイルはドメインルートディレクトリに配置されますが、他の.htaccessを持つことができます サブディレクトリ内のファイル。

このメソッドにはmod_rewriteが必要です Apacheサーバーにロードされるモジュール。このモジュールは、ほとんどのサーバーにデフォルトでロードされます。可能であれば、仮想ホストでリダイレクトを作成することをお勧めします。これは、よりシンプルで安全だからです。

すべてのHTTPトラフィックをHTTPSにリダイレクトするには、ルート.htaccessを開きます ファイルに次のコードを追加します

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://unixcop.com/$1 [L,R=301]

説明

  • RewriteEngine On –書き換え機能を有効にします。
  • RewriteCond %{HTTPS} off – HTTP接続をチェックし、条件が満たされると、次の行が実行されます。
  • RewriteRule ^(.*)$ https://unixcop.com/$1 [L,R=301] –ステータスコード301(永続的に移動)でHTTPをHTTPSにリダイレクトします。

以下の例には、リクエストがwwwで始まるかどうかをチェックする追加の条件があります 。これを使用して、すべての訪問者にHTTPS非wwwバージョンのサイトを使用するように強制します

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.unixcop\.com [NC]
RewriteRule ^(.*)$ https://unixcop.com/$1 [L,R=301]

.htaccessを編集する場合 ファイルの場合、Apacheはリクエストごとにファイルを読み取るため、サーバーを再起動する必要はありません。

したがって、ApacheにHTTPSを使用させる方法はすでに知っています。

Apacheドキュメント


Linux
  1. LinuxでBusyBoxを使用する方法

  2. Linuxでcronを使用する方法

  3. LinuxでSuコマンドを使用する方法

  1. UbuntuにApacheをインストールするにはどうすればいいですか?

  2. Plesk で HTTPS を有効にして強制する方法

  3. vimでpylintを使用する方法

  1. Nginxを使用してリダイレクトする方法

  2. ApacheにPhp7.0(7.1ではない)を使用させる方法は?

  3. Ubuntu18.04でLetsEncryptを使用してApacheを保護する方法