Ubuntu14.04で複数のApache仮想ホストの証明書を暗号化するように設定する方法
序章
SSL証明書は、サーバーとクライアント間のトラフィックを暗号化するためにWebサーバー内で使用され、アプリケーションにアクセスするユーザーに追加のセキュリティを提供します。 Let’s Encryptは、信頼できる証明書を無料で取得してインストールする簡単な方法を提供します。
このチュートリアルでは、Ubuntu 14.04サーバー内で、Apache上の複数の仮想ホストを保護するために Let’sEncryptからTLS/SSL証明書を設定する方法を示します。
また、cronジョブを使用して証明書の更新プロセスを自動化する方法についても説明します。
##前提条件
このガイドを完了するには、次のものが必要です。
- ルート以外のsudoユーザーがいるUbuntu14.04サーバー。これは、初期サーバーセットアップガイドに従ってセットアップできます。
- 複数の仮想ホストをホストする機能的なApacheWebサーバーのインストール
各仮想ホストが独自の個別の構成ファイルでセットアップされ、ブラウザーを介して外部からアクセスできることが重要です。 UbuntuでApache仮想ホストを適切に設定する方法の詳細については、このリンクを参照してください。
このガイドの目的のために、ドメインのLet’sEncrypt証明書をインストールします example.com
と test.com
. これらはガイド全体で参照されますが、フォローしながら独自のドメインに置き換える必要があります。
先に進む準備ができたら、sudoアカウントを使用してサーバーにログインします。
##ステップ1—Let’sEncryptクライアントをダウンロードする
Let’s Encryptを使用してSSL証明書を取得するための最初のステップは、 certbot
サーバー上のソフトウェア。 Certbot開発者は、ソフトウェアの最新バージョンを使用して独自のUbuntuソフトウェアリポジトリを維持しています。 Certbotは非常に活発に開発されているため、このリポジトリを使用して、Ubuntuが提供するよりも新しいCertbotをインストールする価値があります。
まず、リポジトリを追加します。
- 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—証明書を設定する
を使用してApacheのSSL証明書を生成する certbot
Let’sEncryptクライアントは非常に簡単です。 クライアントは、パラメータとして提供されたドメインに有効な新しいSSL証明書を自動的に取得してインストールします。
複数のLet’sEncrypt証明書をバンドルすることは可能ですが、ドメイン名が異なる場合でも、一意のドメイン名に対して個別の証明書を作成することをお勧めします。 一般的な経験則として、特定のドメインのサブドメインのみをバンドルする必要があります。
###最初のSSL証明書の生成
まず、最初の仮想ホストのSSL証明書を設定します。 example.com
.
インタラクティブインストールを実行し、ドメインとサブドメインに有効なバンドルされた証明書を取得します。 example.com
ベースドメインとして www.example.com
サブドメインとして。 Apacheセットアップで仮想ホストまたはエイリアスとして現在構成されている追加のサブドメインを含めることができます。
を実行します certbot
次のコマンド:
- sudo certbot --apache -d example.com -d www.example.com
パラメータのリストの最初のドメイン名は、Let’sEncryptが証明書を作成するために使用するbase ドメインになることに注意してください。そのため、最初に裸のトップレベルドメイン名を渡すことをお勧めします。リストの後に、追加のサブドメインまたはエイリアスが続きます。
この例では、baseドメインは次のようになります。 example.com
.
依存関係がインストールされると、証明書オプションをカスタマイズするためのステップバイステップガイドが表示されます。 紛失したキーの回復と通知のためにメールアドレスを提供するように求められ、両方を有効にするかどうかを選択できます http
と https
すべてのリクエストにアクセスするか、リダイレクトを強制します https
.
インストールが完了すると、生成された証明書ファイルを次の場所で見つけることができるはずです。 /etc/letsencrypt/live
. SSL証明書のステータスは、次のリンクで確認できます(example.comをbaseドメインに置き換えることを忘れないでください)。
https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest
これで、を使用してWebサイトにアクセスできるようになります。 https
プレフィックス。
2番目のSSL証明書の生成
追加の仮想ホストの証明書の生成は、前の手順で説明したのと同じプロセスに従う必要があります。
Let’s Encryptで保護する2番目の仮想ホストを使用して、certificateinstallコマンドを繰り返します。
- sudo certbot --apache -d test.com -d www.test.com
この例では、baseドメインは次のようになります。 test.com
.
繰り返しになりますが、SSL証明書のステータスは次のリンクで確認できます(test.comをbaseドメインに置き換えることを忘れないでください)。
https://www.ssllabs.com/ssltest/analyze.html?d=test.com&latest
追加の仮想ホストの証明書を生成する場合は、プロセスを繰り返すだけで、ベースドメインとしてベアトップレベルドメインを使用することを忘れないでください。
##ステップ3—自動更新を設定する
Let’s Encryptの証明書は、90日間のみ有効です。 これは、ユーザーが証明書の更新プロセスを自動化することを奨励するためです。 定期的に実行するコマンドを設定して、期限切れの証明書を確認し、それらを自動的に更新する必要があります。
毎日更新チェックを実行するには、 cron
、定期的なジョブを実行するための標準的なシステムサービス。 教えて cron
と呼ばれるファイルを開いて編集することによって何をすべきか crontab
.
- sudo crontab -e
テキストエディタは、ヘルプテキストを含むテキストファイルであるデフォルトのcrontabを開きます。 ファイルの最後に次の行を貼り付けて、保存して閉じます。
. . .
15 3 * * * /usr/bin/certbot renew --quiet
The 15 3 * * *
この行の一部は、「毎日午前3時15分に次のコマンドを実行する」ことを意味します。 いつでも選択できます。
The renew
Certbotのコマンドは、システムにインストールされているすべての証明書をチェックし、30日以内に期限切れになるように設定されている証明書を更新します。 --quiet
情報を出力したり、ユーザー入力を待機したりしないようにCertbotに指示します。
cron
このコマンドを毎日実行します。 を使用して証明書をインストールしたため --apache
プラグイン、Apacheもリロードされ、新しい証明書が使用されるようになります。
cronジョブを作成およびスケジュールする方法の詳細については、VPSガイドでCronを使用してタスクを自動化する方法を確認してください。
##結論
このガイドでは、Apacheで複数の仮想ホストを保護するために、Let’sEncryptから無料のSSL証明書をインストールする方法を説明しました。 重要な更新については、公式のLet’sEncryptブログを時々確認することをお勧めします。