Ubuntu16.04でLet’sEncryptを使用してApacheを保護する方法
序章
このチュートリアルでは、ApacheをWebサーバーとして実行しているUbuntu16.04サーバーでLet’sEncryptからTLS/SSL証明書を設定する方法を説明します。
SSL証明書は、サーバーとクライアント間のトラフィックを暗号化するためにWebサーバー内で使用され、アプリケーションにアクセスするユーザーに追加のセキュリティを提供します。 Let’s Encryptは、信頼できる証明書を無料で取得してインストールする簡単な方法を提供します。
前提条件
このガイドを完了するには、次のものが必要です。
- ルートsudoが有効になっていないユーザーがいるUbuntu16.04サーバー。これは、初期サーバーセットアップガイドに従ってセットアップできます。
- 1つ以上のドメイン名が指定された仮想ホストを介して適切に構成されたApacheWebサーバー
ServerName
.
先に進む準備ができたら、sudo対応アカウントを使用してサーバーにログインします。
ステップ1—Let’sEncryptクライアントをインストールする
Let’s Encrypt証明書は、サーバーで実行されているクライアントソフトウェアを介して取得されます。 公式クライアントはCertbotと呼ばれ、その開発者は最新バージョンの独自のUbuntuソフトウェアリポジトリを維持しています。 Certbotは非常に活発に開発されているため、このリポジトリを使用して、Ubuntuがデフォルトで提供するよりも新しいバージョンをインストールする価値があります。
まず、リポジトリを追加します。
- sudo add-apt-repository ppa:certbot/certbot
を押す必要があります ENTER
受け入れるために。 その後、パッケージリストを更新して、新しいリポジトリのパッケージ情報を取得します。
- sudo apt-get update
そして最後に、新しいリポジトリからCertbotをインストールします。 apt-get
:
- sudo apt-get install python-certbot-apache
The certbot
Let’sEncryptクライアントを使用する準備が整いました。
ステップ2—SSL証明書を設定する
Certbotを使用してApacheのSSL証明書を生成するのは非常に簡単です。 クライアントは、パラメータとして提供されたドメインに有効な新しいSSL証明書を自動的に取得してインストールします。
インタラクティブインストールを実行し、単一のドメインのみをカバーする証明書を取得するには、 certbot
このようなコマンド。ここで、example.comはドメインです。
- sudo certbot --apache -d example.com
複数のドメインまたはサブドメインに有効な単一の証明書をインストールする場合は、それらを追加のパラメーターとしてコマンドに渡すことができます。 パラメータリストの最初のドメイン名は、Let’sEncryptが証明書の作成に使用するbase ドメインになります。そのため、リストの最初に裸のトップレベルドメイン名を渡すことをお勧めします。 、その後に追加のサブドメインまたはエイリアスが続きます。
- sudo certbot --apache -d example.com -d www.example.com
この例では、baseドメインは次のようになります。 example.com
.
複数の仮想ホストがある場合は、実行する必要があります certbot
それぞれに1回ずつ、それぞれに新しい証明書を生成します。 複数のドメインとサブドメインを仮想ホスト全体に任意の方法で分散できます。
依存関係がインストールされると、証明書オプションをカスタマイズするためのステップバイステップガイドが表示されます。 紛失したキーの回復と通知のためにメールアドレスを提供するように求められ、両方を有効にするかどうかを選択できます http
と https
すべてのリクエストにアクセスするか、リダイレクトを強制します https
. 通常、要求するのが最も安全です https
、暗号化されていない必要がある場合を除きます http
トラフィック。
インストールが完了すると、生成された証明書ファイルを次の場所で見つけることができるはずです。 /etc/letsencrypt/live
. SSL証明書のステータスは、次のリンクで確認できます(example.comをbaseドメインに置き換えることを忘れないでください)。
https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest
これで、を使用してWebサイトにアクセスできるようになります。 https
プレフィックス。
ステップ3—Certbotの自動更新を確認する
証明書を暗号化して、90日間だけ有効にします。 ただし、インストールしたcertbotパッケージは、実行することでこれを処理します。 certbot renew
systemdタイマーを介して1日2回。 systemd以外のディストリビューションでは、この機能は次の場所に配置されたcronスクリプトによって提供されます。 /etc/cron.d
. タスクは1日2回実行され、有効期限が切れてから30日以内に証明書が更新されます。
更新プロセスをテストするために、ドライランを実行できます。 certbot
:
- sudo certbot renew --dry-run
エラーが表示されない場合は、すべて設定されています。 必要に応じて、Certbotは証明書を更新し、Apacheをリロードして変更を取得します。 自動更新プロセスが失敗した場合、Let’s Encryptは指定した電子メールにメッセージを送信し、証明書の有効期限が近づいたときに警告します。
結論
このガイドでは、ApacheでホストされているWebサイトを保護するために、Let’sEncryptから無料のSSL証明書をインストールする方法を説明しました。 公式のLet’sEncryptブログで重要な更新を随時確認し、CertbotのドキュメントでCertbotクライアントの詳細を確認することをお勧めします。