###序章

このチュートリアルでは、ApacheをWebサーバーとして実行しているUbuntu14.04サーバーでLet’sEncryptからTLS/SSL証明書を設定する方法を説明します。

SSL証明書は、サーバーとクライアント間のトラフィックを暗号化するためにWebサーバー内で使用され、アプリケーションにアクセスするユーザーに追加のセキュリティを提供します。 Let’s Encryptは、信頼できる証明書を無料で取得してインストールする簡単な方法を提供します。

##前提条件

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

先に進む準備ができたら、sudo対応アカウントを使用してサーバーにログインします。

##ステップ1—Let’sEncryptクライアントをダウンロードする

Let’s Encryptを使用してSSL証明書を取得するための最初のステップは、サーバーにcertbotソフトウェアをインストールすることです。 Certbot開発者は、最新バージョンのソフトウェアを使用して独自のUbuntuソフトウェアリポジトリを維持しています。 Certbotは非常に活発に開発されているため、このリポジトリを使用して、Ubuntuが提供するよりも新しいCertbotをインストールする価値があります。

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

  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—SSL証明書を設定する

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

対話型インストールを実行し、単一のドメインのみをカバーする証明書を取得するには、次のコマンドを指定してcertbotコマンドを実行します。

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

複数のドメインまたはサブドメインに有効な単一の証明書をインストールする場合は、それらを追加のパラメーターとしてコマンドに渡すことができます。 パラメータリストの最初のドメイン名は、Let’sEncryptが証明書の作成に使用するbase ドメインになります。そのため、リストの最初に裸のトップレベルドメイン名を渡すことをお勧めします。 、その後に追加のサブドメインまたはエイリアスが続きます。

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

この例では、baseドメインはexample.comになります。

紛失したキーの回復と通知のために電子メールアドレスを提供するように求められ、Let’sEncryptの利用規約に同意する必要があります。 次に、httphttpsの両方のアクセスを有効にするか、すべてのリクエストをhttpsにリダイレクトするかを選択するよう求められます。

インストールが完了すると、/etc/letsencrypt/liveで生成された証明書ファイルを見つけることができるはずです。 SSL証明書のステータスは、次のリンクで確認できます(example.combaseドメインに置き換えることを忘れないでください)。

https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest

これで、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でホストされているWebサイトを保護するために、Let’sEncryptから無料のSSL証明書をインストールする方法を説明しました。 公式のLet’sEncryptブログで重要な更新を随時確認し、CertbotのドキュメントでCertbotクライアントの詳細を確認することをお勧めします。