GNU/Linux >> Linux の 問題 >  >> Cent OS

Nginxを使用してCentOS8にLet'sEncryptをインストールする方法

このチュートリアルでは、無料のLet’sEncryptSSL証明書をNginxをWebサーバーとして使用するCentOS8VPSにインストールする方法について説明します。

Let’s Encryptは、TLS暗号化を有効にするために、Webサイトに無料のSSL証明書を提供する無料のオープンソースの非営利認証局です。これは、インターネットセキュリティ研究グループ(ISRG)によって開発され、すべての主要なブラウザによって信頼されています。これは、証明書の作成、検証、署名、実装、および安全なWebサイトの証明書の更新のプロセスを自動化するために使用されます。

Let’s Encryptの主な目的は、Web全体でSSLの使用を促進し、インターネット全体で暗号化された接続を確立して、プロセスのすべての人をより安全に保つことです。証明書の有効期間は90日間のみであるため、手動で更新するか、自動更新システムを設定する必要があります。これはデフォルトで有効になっているはずです。

現在、Let’s Encryptは、Apache、Nginx、Plex、およびHAproxyの自動認証発行をサポートしています。これは、ほぼすべてのユースケースをカバーするはずです。インストールガイドから始めましょう。

前提条件
  • このチュートリアルでは、CentOS8VPSを使用します。
  • 完全なSSHルートアクセスまたはsudo権限を持つユーザーも必要です。すべてのVPSには、追加費用なしでデフォルトでルートアクセスが含まれています。
  • 有効なドメイン名がVPSIPアドレスに向けられています。

ステップ1:ログインしてパッケージを更新する

まず、SSHを使用してサーバーにログインする必要があります。これを行うには、次のコマンドを入力します:

ssh root@IP_Address -p Port_Number

rootユーザーを使用していない場合は、「root」をユーザー名に置き換えることを忘れないでください。サーバーのIPアドレスとSSHポート番号に応じて、「IP_Address」と「Port_Number」を変更します。デフォルトのSSHポート番号は22です。

ログインしたら、すべてのパッケージを最新の利用可能なバージョンに更新する必要があります。

dnf update -y

更新が完了したら、システムを再起動して変更を適用します。

ステップ2:NginxとPHPをインストールする

まず、次のコマンドを実行してNginxウェブサーバーとPHPをインストールします。

dnf install nginx php php-fpm php-cli -y

すべてのパッケージがインストールされたら、NginxおよびPHP-FPMサービスを開始し、次のコマンドを使用して起動時に開始できるようにします。

systemctl start nginx
systemctl enable nginx
systemctl start php-fpm
systemctl enable php-fpm

ステップ3:PHP-FPMを構成する

デフォルトでは、PHP-FPMはApacheユーザーおよびグループとして実行するように構成されています。このチュートリアルでは、NginxWebサーバーを使用します。これは、Nginxユーザーおよびグループとして実行するようにPHP-FPMを構成する必要があることを意味します。

これを行うには、PHP-FPM構成ファイルを編集します。

nano /etc/php-fpm.d/www.conf

ユーザーとグループの値をapacheから変更します nginxへ 、以下に示すように:

user = nginx
group = nginx

終了したら、ファイルを保存して閉じます。次に、PHP-FPMサービスを再起動して、変更を適用します。

systemctl restart php-fpm

ステップ4:Nginx仮想ホストを作成する

開始する前に、NginxのサンプルWebサイトを作成してください。

mkdir /var/www/html/yourdomain.com

次に、Webサイトディレクトリ内にサンプルPHPファイルを作成し、お好みのテキストエディタで開きます。

nano /var/www/html/yourdomain.com/index.php

次の行をファイルに追加します。

<?php
phpinfo();
?>

ファイルを保存して閉じ、ウェブサイトの所有権をnginxに設定します 次のコマンドを使用します:

chown -R nginx:nginx /var/www/html/yourdomain.com/

次に、Webサイトにサービスを提供する新しいNginx仮想ホスト構成ファイルを作成します。

nano /etc/nginx/conf.d/yourdomain.com.conf

次の行を追加します:

server {
server_name yourdomain.com;
root /var/www/html/yourdomain.com;
location / {
index index.php;
}
access_log /var/log/nginx/yourdomain.access.log;
error_log /var/log/nginx/yourdomain.error.log;
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
>

yourdomainのすべてのインスタンスを必ず置き換えてください 登録したドメイン名で。

ファイルを保存して閉じ、次のコマンドを使用してNginx構成ファイルに構文エラーがないか確認します。

nginx -t

次の出力が表示されます。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

次に、Nginxサービスを再起動して、構成の変更を適用します。

systemctl restart nginx

これで、Webサーバーが稼働しているはずです。

ステップ5:Certbotクライアントをインストールする

WebサイトのLet’s Encrypt証明書を生成するには、システムにCertbotクライアントをインストールする必要があります。

Certbotは、WebサイトのLet’sEncryptSSL証明書を取得および更新するプロセスを簡素化するために使用されるコマンドラインツールです。

デフォルトでは、CertbotパッケージはCentOS標準リポジトリでは利用できません。そのため、ベンダーのWebサイトからダウンロードする必要があります。

次のコマンドでダウンロードしてインストールできます:

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Certbotをインストールしたら、次のコマンドを実行して、WebサイトのSSL証明書を取得してインストールします。

certbot-auto --nginx -d yourdomain.com

上記のコマンドは、最初に必要なすべての依存関係をサーバーにインストールします。インストールすると、以下に示すように、メールアドレスを入力して利用規約に同意するよう求められます。

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): [email protected]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N

メールをEFFと共有したくない場合は、Nと入力し、Enterキーを押して続行します。証明書がインストールされると、次の出力が表示されます。

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for yourdomain.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/yourdomain.com.conf
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/yourdomain.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://yourdomain.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=yourdomain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/yourdomain.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/yourdomain.com/privkey.pem
Your cert will expire on 2020-08-30. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again with the "certonly" option. To non-interactively renew *all*
of your certificates, run "certbot-auto renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
Donating to EFF:                    https://eff.org/donate-le
- We were unable to subscribe you the EFF mailing list because your
e-mail address appears to be invalid. You can try again later by
visiting https://act.eff.org.

これで、WebサイトはLet’sEncryptSSLで保護されます。オンラインツールを使用してSSL証明書をテストできます。

ステップ6:Webサイトにアクセスする

次に、Webブラウザーを開き、URL https://yourdomain.comを使用してWebサイトに安全にアクセスします。 。

次のページが表示されます:

上記のページでは、サイトが適切に保護されていることを確認できます。通常は、アドレスバーの左端に緑色の鍵のアイコンが表示されます。

ステップ7:自動更新を設定する

CentOS 8 VPSにLet’s Encryptをインストールしたので、証明書が更新されて有効であることを確認する必要があります。

デフォルトでは、Let’sEncrypt証明書は90日間有効です。有効期限が切れた証明書は、ユーザーがWebサイトにアクセスしようとしたときに安全上の警告を表示するため、有効期限が切れる前に証明書を更新することをお勧めします。

次のコマンドを使用して、更新プロセスを手動でテストできます。

certbot-auto renew --dry-run

上記のコマンドは、現在インストールされている証明書を自動的にチェックし、有効期限から30日以内の場合は更新を試みます。

cronjobを追加して、上記のコマンドを1日2回自動的に実行することもできます。

これを行うには、次のコマンドを使用してcrontabファイルを編集します。

crontab -e

次の行を追加します:

* */12 * * *   root /usr/local/bin/certbot-auto renew >/dev/null 2>&1

左端の値を調整することで、1日2回の頻度が高すぎる場合は、このcronジョブの間隔をいつでも変更できます。

ファイルを保存して閉じます。これで、証明書は定期的に更新されます。おめでとう!これで、Let’sEncryptがNginxを使用してCentOS8サーバーにインストールされました。

必要なすべてのプラグインと機能を備えたWebサイトをセットアップすると、ビジネスの運営に費やす可能性のある多くの時間と労力がかかる可能性があります。マネージドCentOS8ホスティングサービスのいずれかを使用している場合は、すべての面倒な作業を行います。サーバーのメンテナンスからインストールや構成のリクエストまで、サーバーを最高の状態に保つために必要なすべてを追加費用なしでカバーします。

このチュートリアルがCentOS8VPSでSSLを使用してNginxWebサイトを構成するのに役立った場合は、コメントセクションにコメントを残すか、共有ショートカットを使用してソーシャルメディアでこの投稿を共有することを検討してください。ありがとうございます。


Cent OS
  1. CentOS7でLetsEncryptを使用してNginxを保護する

  2. CentOS 8にLet’s Encrypt(Certbot)をインストールするにはどうすればよいですか?

  3. Nginxを使用してCentOS8にLet'sEncryptをインストールする方法

  1. CentOS7にNginxを使用してWordPressをインストールする方法

  2. CentOS7にNginxを使用してphpMyAdminをインストールする方法

  3. CentOS7にNginxを使用してSuiteCRMをインストールする方法

  1. CentOS7にNginxでMediaWikiをインストールする方法

  2. CentOS7にNginxとPHP-FPM7.1を使用してLaravel5.xをインストールする方法

  3. Nginxを使用してWordPressをインストールし、CentOS8でSSLを暗号化する方法