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

RockyLinux8にNGINX用のLet'sEncryptSSLをインストールする方法

セキュリティは、ウェブサイトの所有者にとって最も重要な懸念事項の1つです。特に、eコマースストアや、ユーザー名やパスワードなどのユーザーの機密情報を受け入れるサイトを運営している場合はなおさらです。データはプレーンテキストで送信され、ハッカーはWebサーバーとの間で送受信される通信を盗聴する可能性があるため、プレーンHTTPプロトコルは安全ではありません。

このリスクを克服するには、TLS/SSL証明書を使用してWebサーバーを保護することをお勧めします。これは、Webサーバーを暗号化し、Webサーバーと交換されるデータが暗号化されることを保証する暗号化デジタル証明書です。

Let’s Encrypt SSL証明書は、Webサーバーを保護するためにLet’s Encrypt CA(認証局)によって提供されるデジタル証明書です。これは無料のTLS/SSL証明書であり、有効期間は90日間のみです。有効期限が切れる前に、更新する必要があります。ブログやウェブサイトにプレミアムSSL証明書を購入できないスタートアップや個人にとっては有益です。

このガイドでは、NGINX用のLet’s Encrypt SSL/TLS証明書をRockyLinux8にインストールする方法を示します

必要なもの

まず、クラウドまたはオンプレミスにRocky Linux 8サーバーのインスタンスがあり、sudoユーザーで構成済みであることを確認します。

次に、サーバーのパブリックIPを指す完全修飾ドメイン名(FQDN)があることを確認します。これを実現するには、ドメインレジストラにアクセスし、DNS設定で、ドメイン名がサーバーのパブリックIPを指すようにAレコードを構成します。以下は私のAレコードの抜粋です。

このガイドでは、サーバーのIPアドレス34.134.239.201を指すドメイン名linuxtechgeek.infoを使用しています。

それが邪魔にならないように、始めましょう!

ステップ1)Nginxウェブサーバーをインストールする

Rocky8へのNginxWebサーバーのインストールから始めます。しかし、最初に、システムパッケージをアップグレードして、リポジトリを更新しましょう。

$ sudo dnf update

更新にはしばらく時間がかかる場合があるため、完了するまでしばらくお待ちください。

アップグレードが完了したら、システムを1回再起動してから、次のようにnginxWebサーバーをインストールします。

$ sudo dnf install nginx

デフォルトでは、nginxは自動的に起動しません。だから、さらに一歩進んで、nginxサービスを開始してください。

$ sudo systemctl start nginx

次に、起動時または再起動時にWebサーバーを起動できるようにします。

$ sudo systemctl enable nginx

これで、Webサーバーは期待どおりに実行され、ポート80でリッスンしているはずです。これは、コマンドを実行することで確認できます

$ sudo systemctl status nginx

これは、Webブラウザからも確認できます。ただし、最初に、示されているコマンドを実行して、ファイアウォールでHTTPトラフィック(HTTPとHTTPSの両方)を許可します

$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent

次に、ファイアウォールをリロードして変更を有効にします。

$ sudo firewall-cmd --reload

次に、サーバーのIPアドレスまたはドメイン名を参照します

http:// domain_name

ステップ2)ドメインのドキュメントルートを作成します

Webサーバーのインストールが完了しました。次のステップは、ドメインのファイルを収容するディレクトリを作成することです。 mkdirコマンドを使用して示すように、linuxtechgeek.infoパスにドメインのディレクトリを作成します

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

ドメインのドキュメントルートは、HTML、CSS、JavaScript、画像などのWebサイトファイルを見つける場所です。デモンストレーションのために、簡単なindex.htmlファイルを作成します。

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

次に、次のサンプルHTMLコードを貼り付けて、変更を保存します。

<!DOCTYPE html>
<html>
    <head>
        <title>Welcome to linuxtechgeek.info</title>
    </head>
    <body>
  <h1>Hey Guys! Our Nginx server block is working.</h1>
    </body>
</html>

次に、chownコマンドを使用して、ドメインのディレクトリの所有権を次のように設定し、権限の取得の問題を回避します。

$ sudo chown -R nginx /var/www/linuxtechgeek.info/

次に、グループユーザーとグローバルユーザーがドメインのファイルに対する読み取りと実行の権限を持つように権限を設定します。

$ sudo chmod -R 755 /var/www/linuxtechgeek.info/

ドメインのドキュメントルートの構成と、適切な所有権と権限の設定が完了しました。先に進み、サーバーブロックファイルを構成しましょう。

ステップ3)Nginxサーバーブロックを作成する

Nginxサーバーブロックは、Apache仮想ホストに相当します。サーバーブロックは、サイトの設定を定義し、nginxウェブサーバーにドメインのファイルの場所を指示する場所です。

サーバーブロック構成ファイルは、/ etc / nginx/conf.dディレクトリに作成されます。次のように同じディレクトリに作成します。

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

次の行をコピーして貼り付けます。必ずlinuxtechgeek.infoドメイン名を独自のドメインに置き換えてください。

server {
    listen 80;
    server_name linuxtechgeek.info www.linuxtechgeek.info;
    root /var/www/linuxtechgeek.info/html;
    index index.php index.html index.htm;
    access_log /var/log/nginx/linuxtechgeek.info.access.log;
    error_log /var/log/nginx/linuxtechgeek.info.error.log;
}

変更を保存して、サーバーブロックファイルを終了します。

次に、すべてのNginx構成に問題がないことを確認します。すべてが順調であれば、出力が表示されるはずです。

$ sudo nginx -t

Nginxがドメインのドキュメントルートやサーバーブロックファイルを含むすべての変更を認識できるようにするには、ウェブサーバーを再起動します。

$ sudo systemctl restart nginx

次に、Nginxの実行ステータスを確認します。

$ sudo systemctl status nginx

次に、次のコマンドを使用してSELinuxをパーミッシブモードに設定します:

$ sudo setenforce permissive

パーミッシブモードに設定されていることを確認するには、次のコマンドを実行します。

$ sudo getenforce

以下のsedコマンドを実行して、selinuxモードをパーミッシブとして永続的に設定します。

$ sudo sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/sysconfig/selinux

サーバーブロックファイルが正しく構成されていることを確認するには、もう一度ドメイン名を参照します。

http:// domain_name

以下に示すように、肯定的な確認が得られるはずです。

ステップ4)Certbotをインストールします

残っている唯一のステップは、Let’sEncryptをインストールしてNginxWebサーバーを保護することです。ただし、これを実現するには、certbotをインストールする必要があります。 Pythonで記述され、Electronic Frontier Foundationによって開発されたCertbotは、Let’sEncryptCAのフル機能のクライアントです。これはWebサーバー上で実行され、1つのコマンドでWebサーバーのSSL証明書を自動的に設定できます。

まず、RHELベースのディストリビューション用の追加の高品質パッケージを提供するEPELリポジトリをインストールします。

$ sudo dnf install -y epel-release

インストールしたら、Nginx用のcertbotとcertbotモジュールをインストールします。

$ sudo dnf install certbot python3-certbot-nginx

これにより、他のパッケージや依存関係のNginxホスト用のcertbot、certbotモジュールがインストールされます。

ステップ4)Let's Encrypt SSL/TLS証明書をインストールする

最後に、certbotクライアントを実行してSSL証明書をインストールします

$ sudo certbot --nginx

これにより、一連のプロンプトが表示されます。まず、更新とセキュリティ更新を送信するためにEFFが使用する電子メールアドレスを提供します。次に、「Y」を押して利用規約に同意します。必要に応じて、「Y」を押すと、EFFがウェブ、ニュース、キャンペーンを保護するための取り組みに関する最新情報を定期的に送信できるようになります。最後に、暗号化するドメイン名を選択します。この例では、「ENTER」ボタンを押してすべてのドメイン名を選択しました。

CertbotはSSL/TLS証明書を取得し、指定されたドメイン名にデプロイします。これにより、ドメインのHTTPSプロトコルが有効になり、事実上、ウェブサーバーと交換されるトラフィックが暗号化されます。

HTTPSが有効になっていることを確認するには、ブラウザに戻ってリロードします。今回は、URLバーに南京錠のアイコンが表示されます。これはサイトが暗号化されていることを示しています。

アイコンをクリックして、[証明書]を選択します。

これにより、提供された証明書の詳細が表示されます

さらに、インターネットを介してWebサーバーの詳細な分析を実行するサイトであるSSLLabsでWebサーバーのステータスをテストできます。示されているようにA評価を取得する必要があります。

ステップ5)SSL証明書の更新の管理

Let's Encryptの証明書は90日間有効ですが、Let'sEncryptでは60日ごとに証明書を更新することをお勧めします。有効期限が切れるまで、過去20日間にメール通知が送信され、頻度は過去10日間で増加します。

次のように手動で証明書を更新できます。

$ sudo certbot renew

ありがたいことに、新しいcronジョブを追加することで、更新を自動化できます。したがって、crontabファイルを開きます。

$ crontab -e

そして、示されている行を追加します。変更を保存して終了します。

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

それで全部です。ここまで来てくれてありがとう。 Rocky Linux8にNginx用のLet’sEncryptSSL証明書をインストールする方法を示しました。

また読むLinuxでKeepAlivedを使用して高可用性NGINXをセットアップする方法


Rocky Linux
  1. RockyLinux8にMariaDB10.6をインストールする方法

  2. RockyLinux8にNginx用のVarnish7をインストールする方法

  3. Rocky Linux 8 に MariaDB をインストールする方法

  1. RockyLinux8にDockerをインストールする方法

  2. RockyLinux8にコックピットをインストールする方法

  3. RockyLinux8にGitLabをインストールする方法

  1. Debian11のNginxにLet'sEncryptSSLをインストールする方法

  2. RockyLinux8にFreeIPAをインストールする方法

  3. RockyLinux8にPodmanをインストールする方法