Ubuntu および Debian で無料の Let's Encrypt SSL 証明書を使用して Apache を保護する方法
新しく登録されたドメイン名があり、Web サーバーは発行されたSSL 自己署名証明書を使用して動作していますが、クライアントがドメインにアクセスする際、証明書で生成されたエラーが原因で頭痛の種を引き起こしていますか?予算が限られており、信頼できる CA が発行した証明書を購入する余裕がありませんか?ここでLet’s Encrypt ソフトウェアが登場し、窮地を救ってくれます。
Apache または Nginx 用の Let's Encrypt を RHEL や CentOS にインストールする場合strong>、Fedora、Ubuntu、Debianの場合は、以下のガイドに従ってください。
RHEL および CentOS 7/6 で Apache を保護するための Let’s Encrypt のセットアップ
Ubuntu および Debian で Nginx を保護するために Let’s Encrypt をセットアップする
Let's Encrypt は、認証局 (CA) で、必要な無料のSSL/TLS 証明書の取得を容易にします。サーバーを安全に実行し、ユーザーにエラーのないスムーズなブラウジング エクスペリエンスを提供します。
テストサンプル環境
証明書の生成に必要なすべての手順は、ほとんどがApache ウェブサーバーで自動化されています。ただし、Web サーバー ソフトウェアにもかかわらず、特に Web サイトのコンテンツがNginx デーモンによって提供されている場合は、一部の手順を手動で実行し、証明書を手動でインストールする必要があります。
このチュートリアルでは、Ubuntu または Debian に Let's Encrypt ソフトウェアをインストールする方法、ドメイン用の無料証明書を生成して取得する方法、およびその方法について説明します。 Apache および Nginx Web サーバーに証明書を手動でインストールできます。
要件
- サーバーの外部 IP アドレスを指す、有効な
A
レコードを持つパブリック登録ドメイン名。サーバーがファイアウォールの背後にある場合は、ルーター側にポート転送ルールを追加して、サーバーがインターネットからワードワイドでアクセスできるようにするために必要な措置を講じてください。 - 複数のドメインまたはサブドメインをホストする場合に備えて、SSL モジュールが有効になり、仮想ホスティングが有効になった状態でインストールされた Apache Web サーバー。
ステップ 1: Apache をインストールし、SSL モジュールを有効にする
1. マシンに Apache Web サーバーがまだインストールされていない場合は、次のコマンドを発行して Apache デーモンをインストールします。
sudo apt-get install apache2
2. Ubuntu または Debian 上の Apache Web サーバーの SSL モジュールのアクティブ化は非常に簡単です。以下のコマンドを発行して、SSL モジュールを有効にし、Apache のデフォルト SSL 仮想ホストをアクティブにします。
sudo a2enmod ssl
sudo a2ensite default-ssl.conf
sudo service apache2 restart
or
sudo systemctl restart apache2.service
訪問者はHTTPS プロトコル経由でドメイン名にアクセスできるようになります。ただし、サーバーの自己署名証明書は信頼できる認証局によって発行されていないため、次の画像に示すように、ブラウザにエラー アラートが表示されます。
https://yourdomain.com
ステップ 2: 無料の Let’s Encrypt クライアントをインストールする
3. サーバーに Let’s Encrypt ソフトウェアをインストールするには、システムに git パッケージがインストールされている必要があります。次のコマンドを発行してgit ソフトウェアをインストールします。
sudo apt-get -y install git
4. 次に、Let's Encrypt git リポジトリのクローンを作成するディレクトリをシステム階層から選択します。このチュートリアルでは、Let’s Encrypt のインストール パスとして /usr/local/
ディレクトリを使用します。
/usr/local
ディレクトリに切り替え、次のコマンドを実行して letsencrypt クライアントをインストールします。
cd /usr/local
sudo git clone https://github.com/letsencrypt/letsencrypt
ステップ 4: Apache の SSL 証明書を生成する
5. Apache の SSL 証明書を取得するプロセスは、Apache プラグインのおかげで自動化されています。ドメイン名に対して次のコマンドを発行して、証明書を生成します。ドメイン名をパラメータとして -d
フラグに指定します。
cd /usr/local/letsencrypt
sudo ./letsencrypt-auto --apache -d your_domain.tld
たとえば、複数のドメインまたはサブドメインで動作する証明書が必要な場合は、基本ドメイン名の後に追加の有効な DNS レコードごとに -d
フラグを使用してそれらをすべて追加します。
sudo ./letsencrypt-auto --apache -d your_domain.tld -d www. your_domain.tld
6. ライセンスに同意し、回復用の電子メール アドレスを入力し、クライアントが両方の HTTP プロトコル (安全なプロトコルと安全でないプロトコル) を使用してドメインを参照できるか、安全でないリクエストをすべて HTTPS にリダイレクトできるかを選択します。
7. インストール プロセスが正常に終了すると、以下のスクリーンショットに示すように、有効期限と設定のテスト方法を通知する祝福メッセージがコンソールに表示されます。
これで、単純なディレクトリ リストで /etc/letsencrypt/live
ディレクトリにある証明書ファイルを見つけることができるようになります。
sudo ls /etc/letsencrypt/live
8. 最後に、SSL 証明書のステータスを確認するには、次のリンクにアクセスしてください。ドメイン名を適宜置き換えてください。
https://www.ssllabs.com/ssltest/analyze.html?d=your_domain.tld&latest
また、訪問者は、Web ブラウザにエラーが表示されることなく、HTTPS プロトコルを使用してドメイン名にアクセスできるようになりました。
ステップ 4: 自動更新で証明書を暗号化しましょう
9. デフォルトでは、Let’s Encrypt 機関によって発行された証明書は 90 日間有効です。有効期限前に証明書を更新するには、以前と同じフラグとパラメータを使用してクライアントを手動で再度実行する必要があります。
sudo ./letsencrypt-auto --apache -d your_domain.tld
または、複数のサブドメインの場合:
sudo ./letsencrypt-auto --apache -d your_domain.tld -d www. your_domain.tld
10. Linux スケジュール cron デーモンを使用すると、証明書の更新プロセスを自動化し、有効期限の 30 日以内に実行できます。
sudo crontab -e
1 行のみを使用して、crontab ファイルの末尾に次のコマンドを追加します。
0 1 1 */2 * cd /usr/local/letsencrypt && ./letsencrypt-auto certonly --apache --renew-by-default --apache -d domain.tld >> /var/log/domain.tld-renew.log 2>&1
11. Let’s Encrypt ソフトウェアの更新ドメイン設定ファイルの詳細は、/etc/letsencrypt/renewal/
ディレクトリにあります。
cat /etc/letsencrypt/renewal/caeszar.tk.conf
また、ファイル /etc/letsencrypt/options-ssl-apache.conf
をチェックして、Apache Web サーバーの新しい SSL 構成ファイルを表示する必要があります。
12. また、Let’s encrypt Apache プラグインは、Web サーバー設定内の一部のファイルを変更します。どのファイルが変更されたかを確認するには、/etc/apache2/sites-enabled
ディレクトリの内容をリストします。
ls /etc/apache2/sites-enabled/
sudo cat /etc/apache2/sites-enabled/000-default-le-ssl.conf
それは今のところすべてです!次の一連のチュートリアルでは、Ubuntu と Debian< 上の Nginx ウェブサーバーの Let's Encrypt 証明書を取得してインストールする方法について説明します。 と CentOS でも同様です。