ステータス:非推奨

この記事は非推奨になり、保守されなくなりました。

理由

Certbotでの変更により、この記事の内容は、Ubuntu16.04のメインのApacheおよびLet’sEncryptチュートリアルに置き換えられました。

代わりに参照してください

この記事は参照として役立つ場合がありますが、機能しない場合やベストプラクティスに従わない場合があります。 Ubuntu16.04でLet’sEncryptを使用してApacheを保護する方法を使用することを強くお勧めします。

序章

SSL証明書は、サーバーとクライアント間のトラフィックを暗号化するためにWebサーバー内で使用され、アプリケーションにアクセスするユーザーに追加のセキュリティを提供します。 Let’s Encryptは、信頼できる証明書を無料で取得してインストールする簡単な方法を提供します。 このチュートリアルでは、Apache上の複数の仮想ホストを保護するために Let’sEncryptからTLS/SSL証明書を設定する方法を示します。

前提条件

このガイドを完了するには、次のものが必要です。

このガイドでは、ドメインexample.comおよびtest.comのLet’sEncrypt証明書をインストールします。 これらはガイド全体で参照されますが、フォローしながら独自のドメインに置き換える必要があります。

ステップ1—Let’sEncryptクライアントのインストール

Let’s Encrypt証明書は、サーバーで実行されているクライアントソフトウェアを介して取得されます。 公式クライアントはCertbotと呼ばれ、その開発者は最新バージョンの独自のUbuntuソフトウェアリポジトリを維持しています。 Certbotは非常に活発に開発されているため、このリポジトリを使用して、Ubuntuがデフォルトで提供するよりも新しいバージョンをインストールする価値があります。

まず、リポジトリを追加します。

  1. sudo add-apt-repository ppa:certbot/certbot

同意するには、ENTERを押す必要があります。 その後、パッケージリストを更新して、新しいリポジトリのパッケージ情報を取得します。

  1. sudo apt-get update

そして最後に、apt-getを使用して新しいリポジトリからCertbotをインストールします。

  1. sudo apt-get install python-certbot-apache

certbotLet’sEncryptクライアントを使用する準備が整いました。 次に、証明書を作成します。

ステップ2—証明書の設定

ApacheのSSL証明書の生成は簡単です。 Certbotは、パラメーターとして提供されたドメインに有効な新しいSSL証明書を自動的に取得してインストールします。

:ドメイン名が異なる場合でも、複数のLet’sEncrypt証明書をバンドルすることができます。 ただし、一意のドメイン名に対して個別の証明書を作成することをお勧めします。

そのため、この手順を複数回(仮想ホストごとに1回)実行する必要があります。 一般的な経験則として、特定のドメインのサブドメインのみをバンドルする必要があります。

次のコマンドは、-dフラグの後のパラメーターとしてドメイン名のコンマ区切りリストを取ります。 リストされている最初のドメイン名は、Certbotが証明書を作成するために使用するベースドメインです。 このため、最初に裸のトップレベルドメイン名を渡し、次に追加のサブドメインまたはエイリアスを渡すことをお勧めします。

example.comの対話型インストールを開始して、そのドメインのバンドルされた証明書を作成します。

  1. sudo certbot --apache -d example.com

紛失したキーの回復と通知用のメールアドレスを入力するよう求められます。また、すべてのhttpトラフィックをhttpsにリダイレクトするかどうかを選択して、[を削除することができます。 X196X]アクセス。 httpsを強制する方が安全なので、両方を許可する特別な必要がない限り、これを選択する必要があります。

インストールが完了すると、/etc/letsencrypt/liveで生成された証明書ファイルを見つけることができます。 https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latestでSSL証明書のステータスを確認でき、httpsプレフィックスを使用してWebサイトにアクセスできるようになりました。 使用しているすべてのドメインについて、この手順をもう一度実行することを忘れないでください。

ステップ3—Certbotの自動更新を確認する

証明書は90日間だけ暗号化しましょう。 ただし、インストールしたcertbotパッケージは、systemdタイマーを介してcertbot renewを1日2回実行することで、これを処理します。 systemd以外のディストリビューションでは、この機能は/etc/cron.dに配置されたcronスクリプトによって提供されます。 タスクは1日2回実行され、有効期限が切れてから30日以内に証明書が更新されます。

更新プロセスをテストするには、certbotを使用してドライランを実行できます。

  1. sudo certbot renew --dry-run

エラーが表示されない場合は、すべて設定されています。 必要に応じて、Certbotは証明書を更新し、Apacheをリロードして変更を取得します。 自動更新プロセスが失敗した場合、Let’s Encryptは指定した電子メールにメッセージを送信し、証明書の有効期限が近づいたときに警告します。

結論

このガイドでは、Apacheで複数の仮想ホストを保護するために、Let’sEncryptから無料のSSL証明書をインストールする方法を説明しました。 公式のLet’sEncryptブログで重要な更新を随時確認し、CertbotのドキュメントでCertbotクライアントの詳細を確認することをお勧めします。