Let's Encrypt対応

昨日書いた、Let’s Encryptプロジェクト。

Hello World, Let's Encrypt

Hello World, Let’s Encryptより

5月のStartSSL更新に間に合うよう…と書いたものの、やっぱり気になるのでさっそくやってみた。

Let’s Encrypt の使い方に従って

yano@vps:~$ git clone https://github.com/letsencrypt/letsencrypt
yano@vps:~$ cd ~/letsencrypt/
yano@vps:~/letsencrypt$ ./letsencrypt-auto certonly -a standalone -d mail.bravotouring.com

とやってみたところ、何やらエラーになったっぽかったので昨夜は一旦諦めたのだが、今朝Let’s Encrypt の使い方を読み直したところ、

Let’s Encrypt クライアントソフトウェアは、ドメイン所有者であることの認証に TCP Port 80 を使用しているため、SSL/TLS サーバ証明書を取得プロセスを完了させるためには、Webサーバを一時的に終了させる必要があります。

と書いてあるのに気付いた。

というわけで、Webサーバを一時的に終了させた後でやり直して /etc/letsencrypt/archive 配下に証明書等が生成される事を確認。

apache設定ファイル /etc/apache2/sites-available/mail.bravotouring.com.conf

SSLCertificateFile      /etc/letsencrypt/live/mail.bravotouring.com/cert.pem
SSLCertificateKeyFile   /etc/letsencrypt/live/mail.bravotouring.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mail.bravotouring.com/chain.pem

/etc/letsencrypt/live 配下のシンボリックリンクを指すようにして確認OK。

…と思ったのだが、自宅のIPv6環境からではダメだった。なんだ~、Let’s Encryptまだまだかな…と思いつつ、StartSSLの証明書に戻してみても状況は変わらず。おぉぉぉっ、そういえば6月のIPv6 by auひかりの後は確認してなかった気がするよ。orz

「IPv6だとサーバ証明書も違うんだっけ、ていうかIPアドレス関係あったっけか?」と思い調べてみたところ、やはりそういうわけでもないらしい。“IPアドレス"で縛られてしまうようだと分散冗長構成に差し支えるので、大規模な商用サービスでは全然使えない事になる。

という事は、単純にapache設定のIPv6対応をしくじっているという事が考えられるので/etc/apache2/sites-available/mail.bravotouring.com.confを素直に見直したところ、

<VirtualHost *:443>

と訂正する事で無事解決した。

【追記】webrootプラグインを使用する事でWebサーバを一時的に終了させずに認証できた。にゃるほど~。

yano@vps:~/letsencrypt$ sudo ./letsencrypt/letsencrypt-auto certonly --webroot --webroot-path=/var/www/html -d mail.bravotouring.com

参照

INTERNET Watch http://internet.watch.impress.co.jp/

Let’s Encrypt https://letsencrypt.org/

Let’s Encrypt 総合ポータル https://letsencrypt.jp/

GitHub - letsencrypt/letsencrypt https://github.com/letsencrypt/

Wikipedia https://ja.wikipedia.org/wiki/