Public BetaになったLet's Encryptを使ってみた

Public BetaになったLet's Encryptを使ってみた。ほんとうに簡単に鍵が作れる。

まず、前提は以下のとおり。

  • 取得対象のドメインで443番で公開できること
  • もしくは、取得対象のドメインで80番webサーバを公開していること

本当に、443番ポートさえあれば良いみたい。ただし外部公開が必要。登録等は不要。

やり方については以下のサイトに書かれている。

letsencrypt.org

試しに、自宅サーバで取得してみた。

まず、目的のドメインのANAMEを、自宅のIPに変更した。次に、ルータの設定で、443番アクセスを自宅サーバに通した。

以下、作業コマンド。

$ docker run -it -p 443:443 ubuntu bash
# apt-get install -y git
# cd /root/
# git clone https://github.com/letsencrypt/letsencrypt
# cd letsencrypt
# ./letsencrypt-auto --help

これで、インストール作業は完了。

あとは以下のコマンドを叩く。途中、メールアドレスの入力と規約へのAgreeをさせられる。

# ./letsencrypt-auto certonly --standalone -d letsenctest.j74th.com
Updating letsencrypt and virtual environment dependencies.......
Running with virtualenv: /root/.local/share/letsencrypt/bin/letsencrypt certonly --standalone -d letsenctest.j74th.com
IMPORTANT NOTES:
 - If you lose your account credentials, you can recover through
   e-mails sent to site@j74th.com.
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/letsenctest.j74th.com/fullchain.pem. Your cert
   will expire on 2016-03-19. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
 - Your account credentials have been saved in your Let's Encrypt
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Let's
   Encrypt so making regular backups of this folder is ideal.
 - 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/以下に、秘密鍵と証明書ができている。

# ls /etc/letsencrypt/live/letsenctest.j74th.com/
cert.pem  chain.pem  fullchain.pem  privkey.pem

fullchain.pemとprivkey.pemをサーバに設定すれば使えるようになる。

試しに、apache2に設定してみた。

# apt-get install -y apache2 openssl
# a2enmod ssl
# vi /etc/apache2/sites-available/default-ssl.conf
-- 以下を編集 --
SSLCertificateFile      /etc/letsencrypt/live/letsenctest.j74th.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/letsenctest.j74th.com/privkey.pem
# a2ensite default-ssl
# service apache2 start

以下の様な証明書だった。

  • RSA 2048bit
  • 有効期限は3ヶ月
  • iPhoneSafariからは「信頼されていません」と表示
  • iPhoneChromeからは緑色にはならないが、エラーはなし

そうかー、信頼されていないになってしまうのか。 なお、上記コマンドではCUIでメールアドレスの入力が求められるが、試していないが--email address@emil.com--agree-tos`でスキップもできるようだ。

更新の際には、元のコマンドを呼ぶだけでいいらしい。

./letsencrypt-auto

やってみたところ、TUIでいろいろ聞かれたので、まだ早かったのかもしれない。

とりあえず、今後サイト作るときは、とりあえずLet's Encryptで暗号化しようと思います。