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

RHEL8でLet'sEncryptを使用してApacheWebサーバーを保護する方法

常にセキュリティの脅威に満ちているオンラインの世界では、Webサーバーのセキュリティ保護を最優先する必要があります。 Webサーバーを保護する方法の1つは、SSL/TLS証明書を使用してサイトにHTTPSプロトコルを実装することです。 SSL / TLS証明書は、ウェブサーバーとユーザーのブラウザ間で交換される情報を暗号化することでサイトを保護するだけでなく、Googleのランキングにも役立ちます。

このガイドでは、RHEL8でLet’s Encrypt SSL / TLSを使用してApache(http)Webサーバーを保護する方法を学習します。

前提条件

続行する前に必要なものは次のとおりです。

  • sudoユーザーが構成されたRHEL8サーバーのインスタンス。
  • サーバーのパブリックIPアドレスを指す完全修飾ドメイン名(FQDN)。このガイドでは、ドメイン名linuxtechgeek.infoを使用します。

ステップ1)RHEL8にApacheをインストールする

最初のステップは、ApacheWebサーバーをインストールすることです。 ApacheはすでにRedHatのAppStreamリポジトリに存在するため、次のようにDNFパッケージマネージャーを使用してインストールできます。

$ sudo dnf install -y httpd

インストールしたら、Apache Webサーバーを起動し、起動時に起動できるようにします。

$ sudo systemctl start httpd
$ sudo systemctl enable httpd

Apacheが実行されていることを確認するには、次のコマンドを実行します。

$ sudo systemctl status httpd

注:ファイアウォールが実行されている場合は、ファイアウォールで次のApacheポートを許可し、実行します

$ sudo firewall-cmd --add-port=80/tcp --permanent
$ sudo firewall-cmd --add-port=443/tcp –permanent
$ sudo firewall-cmd --realod

これで、Webブラウザーにアクセスして、URLバーでドメインを参照できます。

ステップ2)Certbotをインストールする

Certbotは、EFF(Electronic Frontier Foundation)によって管理されている使いやすいオープンソースクライアントです。 Lets EncryptからTLS証明書を取得し、Webサーバーに展開します。そうすることで、TLS証明書を使用してHTTPSプロトコルを実装する煩わしさを解消します。

Certbotおよび関連するパッケージをインストールするには、最初にEPEL(Enterprise Linux用の追加パッケージ)を有効にします。

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

次に、次のようにcertbotとmod_sslパッケージをインストールします。

$ sudo dnf install certbot python3-certbot-apache mod_ssl

ステップ3)Apache仮想ホストファイルを作成します

仮想ホストを使用すると、単一のWebサーバーで複数のドメインをホストできます。

最初のステップは、すべてのWebサイトファイルが入るドキュメントルート内にディレクトリを作成することです。

$ sudo mkdir -p /var/www/linuxtechgeek.info/html

ディレクトリの所有権をApacheユーザーに設定します。

$ sudo chown -R apache:apache /var/www/linuxtechgeek.info/html

図のようにディレクトリのアクセス許可を設定してください。

$ sudo chmod -R 755 /var/www

ドメインのディレクトリにすべての所有権と権限を設定したら、/ etc / httpd /conf.d/ディレクトリに仮想ホストファイルを作成します。

$ sudo vi /etc/httpd/conf.d/linuxtechgeek.info.conf

次の行を貼り付けて、独自のドメイン名を使用するように注意してください。

<virtualhost *:80>
ServerName linuxtechgeek.info
ServerAlias www.linuxtechgeek.info
DocumentRoot /var/www/linuxtechgeek.info/html
ErrorLog /var/log/httpd/linuxtechgeek.info-error.log
CustomLog /var/log/httpd/linuxtechgeek.info-access.log combined
</virtualhost>

仮想ホストファイルを保存して終了します。

仮想ホストが機能しているかどうかをテストするために、WebサイトディレクトリにサンプルHTMLファイルを作成します。

$ sudo vi /var/www/linuxtechgeek.info/html/index.html

次のサンプルコンテンツを貼り付けます。お好みに合わせて自由に変更してください。

<!DOCTYPE html>
<html>
     <body>
         <h1> Welcome to Linuxtechi virtualhost </h1>
      </body>
</html>

HTMLファイルを保存して終了します。行ったすべての変更を保存するには、ApacheWebサーバーを再起動します。

$ sudo systemctl restart httpd

ここで、ドメインをもう一度参照します。今回は、デフォルトのApacheウェルカムページの代わりに、構成したばかりのカスタムHTMLページが表示されます。これは、仮想ホストファイルが機能していることの証明です。

ステップ4)Let’sEncrypt証明書でApacheを保護する

最後のステップは、Let’sEncrypt証明書を取得して展開することです。これを行うには、次のコマンドを実行するだけです。

$ sudo certbot --apache

コマンドが実行されると、certbotは一連のプロンプトを案内します。メールアドレスの入力を求められ、利用規約に同意する必要があります。また、EFFニュースに関する定期的なメール、およびデジタルの自由に関するキャンペーンを受信するかどうかを尋ねられます。

HTTPSを有効にする名前についてプロンプトが表示されたら、Enterキーを押して、提供されているすべてのドメインに証明書を適用します。

Certbotは、Let’s EncryptからTLS証明書を取得し、Webサーバーに実装します。次に、Certbotは、証明書とキーが保存されているパスと、ドメインの証明書の展開パスを出力します。

Let's Encryptが正常にデプロイされたことを確認するには、ブラウザを更新してください。今回は、URLバーの先頭に、サイトが正常に暗号化されたことを示す南京錠のアイコンが表示されます。

詳細については、南京錠のアイコンをクリックしてください

さらに、SSLラボでSSLテストを実行して、証明書をデジタルで検証できます。すべてがうまくいけば、Aグレードを取得する必要があります。

ステップ5)証明書の更新を暗号化しましょう

Let’sEncrypt証明書は90日間のみ有効です。有効期限の数週間前に、通常、EFFから、証明書の有効期限が迫っていることと、証明書を更新する必要があることについての通知が届きます。

次のコマンドを実行して、証明書を手動で更新できます。

$ sudo certbot renew

証明書の更新をシミュレートするには、次のコマンドを実行します。

$ sudo certbot renew --dry-run

これは実際の証明書の更新を模倣するだけであり、アクションは実行されません。

証明書の更新を自動化するには、crontabファイルを開きます

$ crontab -e

毎晩深夜に実行されるcronジョブを以下に指定してください。

0 0 * * * / usr / bin / certbot renew> / dev / null 2>&1

結論

Let’sEncrypt証明書をRHELにシームレスにデプロイしてApacheWebサーバーを保護できるようになることを願っています。

また読むLinuxでNGINXWebサーバーを強化および保護する方法


Linux
  1. Apacheを使用してUbuntu20.04にLet’sEncryptをインストールする方法

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

  3. Debian 11 に Let’s Encrypt SSL を Apache でインストールする方法

  1. ApacheWebサーバーを構成する方法

  2. ApacheWebサーバーで複数のWebサイトを構成する方法

  3. NginxをSSLで保護し、FreeBSDで暗号化する方法

  1. CentOS7にApacheWebサーバーをインストールする方法

  2. CentOS8でLetsEncryptを使用してApacheを保護する

  3. CSF ファイアウォールで Ubuntu サーバーを保護する方法