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