Let's Encryptとは

実施内容

  • このサイトはApache2.4系、ロードバランサー(ELB)なし、1台のサーバー(Amazon EC2)でホストしています。
  • これのサイトを上記のLet's Encryptで発行したSSL証明書でHTTPS通信(暗号化通信)します。
  • 基本的には https://letsencrypt.jp/usage/ の手順どおりですが、この環境に適用した際の手順メモです。

手順

  • 手順を簡略化するためrootで作業します。

gitインストール

  • 既にインストールされていましたが、下記でインストールできるはずです。
# yum install git

Let's Encrypt クライアントダウンロード

# git clone https://github.com/letsencrypt/letsencrypt

クライアントテスト実行

  • AmazonEC2の場合は --debug オプションをつけるように指示されます。
  • letsencrypt-autoを実行すると、不足パッケージなどを自動的にインストールしてくれます。いきなりアクションせず、--helpコマンドで様子を見る感じです。
# cd letsencrypt
# ./letsencrypt-auto --debug --help

Apache停止

  • 証明書取得時に80番ポートで通信を受けられるようにする必要があります。
  • この環境ではWEBサーバーが動作しており、当然80番ポートを使っているので停止します。
# /etc/init.d/httpd stop

証明書取得(初回)

  • ドメイン名は各環境に合わせることになります
  • コマンド実行するとTUI(文字でGUI風なインターフェイスの画面)画面に切り替わります。
# ./letsencrypt-auto certonly -a standalone -d dondari.com -d www.dondari.com

メールアドレスの入力

  • 連絡先のメールアドレスを入力します
Le1.png

利用規約への同意

  • Agreeを選択すると次へ進みます。
Le2.png

(80番ポートが使用中の場合のエラー)

  • クライアントが80番ポートを使えない場合はこのエラー画面で終了します。
  • 終了後、80番ポートを使っているアプリ(通常はWEBサーバーでしょう)を終了し、再度コマンドを実行します。
Le3.png

完了

  • 下記メッセージが表示されます。
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/dondari.com/fullchain.pem. Your cert will
   expire on 2016-08-05. To obtain a new version of the certificate in
   the future, simply run Let's Encrypt again.
 - If you like Let's Encrypt, please consider supporting our work by:   

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
  • こんな意味かと。
証明書ファイルは /etc/letsencrypt/live/dondari.com/fullchain.pem に保存されました。
2016-08-15に失効します。今後証明書を更新するには、コマンド実行してください。
  • ファイルの確認。ファイルの実体は /etc/letsencrypt/archive/ に作成されて、liveディレクトリの中はシンボリックリンクになるようです。(証明書を再取得したときはリンク先が変わるとのこと)
# ls -l /etc/letsencrypt/live/dondari.com/
cert.pem -> ../../archive/dondari.com/cert1.pem
chain.pem -> ../../archive/dondari.com/chain1.pem
fullchain.pem -> ../../archive/dondari.com/fullchain1.pem
privkey.pem -> ../../archive/dondari.com/privkey1.pem

Apache再開

  • WEBサーバーを停止していたので再開させておきます。
# /etc/init.d/httpd start

Apacheの設定

  • バージョン確認
# httpd -v
Server version: Apache/2.4.18 (Amazon)
Server built:   Mar  7 2016 22:32:11
  • httpd.conf
SSLCertificateFile /etc/letsencrypt/live/dondari.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/dondari.com/privkey.pem
  • WEBサーバーを再起動して動作確認
# /etc/init.d/httpd restart

facebook slideshare rubygems github qiita