この記事は古いです。現在ではほとんどのLinux Distributions がcertbotのパッケージをサポートしているはずですので、そちらを使ってください。 カスタムで設定を入れる必要があるとすると、証明書が更新した後に該当するサービス(dovecot, postfix など)をどうやってリロードするかだと思います。 これは、/etc/letsencrypt/renewal-hooks/post に 100-dovecot のようなファイルを作って、 /bin/systemctl restart dovecot.service のような形で設定すればOKだと思います。 |
Let’s Encrypt がついにβフェーズを終わって正式リリースされました。そして、EFF提供のcertbotになりました。
インストールと設定も、βのころに比べると格段に楽になりました。
まず、https://certbot.eff.org/ に行ってください。すると、Web Server と OS を選ぶ画面が出てきます。

ここで、自分の使っている Webserver と OS を選ぶと、お使いの環境ごとのマニュアルが出てきます(英語ですが)ので、それに従うだけです。たとえば、Apache + Ubuntu 14.04 だと、
$ wget https://dl.eff.org/certbot-auto $ chmod a+x certbot-auto
で、certbot のインストールファイルを落としてきて権限変更し、
$ ./certbot-auto
とすることで、certobot のインストールができます。
certbotのインストールが終わったら、証明書のインストールです。Apacheを使っている場合は、
$ ./path/to/certbot-auto --apache
でできます。使い勝手はほぼ Let’s encrypt と同じです。
自動更新の設定は?
さて、ここまで来ると、証明書の自動更新をしたく成るのが人情というものです。ドキュメンテーションを読むと、cronに登録して1日2回更新リクエストを走らせるのがおすすめのようです。(走らせても、証明書が更新時期になければ何もしません。)
ところがですね、Ubuntu などでは、root では certbot は動作しません。一般ユーザで実行しなければなりませんが、それだとパスワードを入れなければならなくて困りますよね。これを回避するには、Certbotをインストールしたユーザが「foo」である場合、
$ sudo visudo
して、/etc/sudoersに以下の記述を追加します。
foo ALL=(root) NOPASSWD:SETENV: /home/foo/.local/share/letsencrypt/bin/letsencrypt
下線を入れた「foo」は、Certbotをインストールしたユーザ名で置き換えてください。これで、certbot-autoしてもパスワードを聞かれなくなったはずです。レッツ・トライ。
/home/foo/certbot-auto renew –dry-run
どうです、パスワードを聞かれずに、上手く行きましたか?上手くいったなら、Crontabへの登録です。
$ crontab -e
して、以下のような感じで記入します。(以下の例では、毎日3:45, 15:45 の2回走らせるようにしています。この時間は皆がランダムにするべきですので、適当に変えてください。)
45 3,15 * * * /home/foo/certbot-auto renew –quiet –no-self-upgrade
番外編:ついでに、Courier MTA のSSL certs も切り替えてみよう
さて、Apache はほとんど全自動で設定できたのではないでしょうか?ついでですから、Courier MTAのSSL certs もこれに切り替えちゃいましょう。
Courier MTA で使う .pem ファイルは、プライベート・キー+証明書+証明書チェーンとつなげたものです。certbotの場合、あなたのドメインが「example.com」だった場合、/etc/letsencrypt/live/example.com/ にこれらのファイルは入っています。Courier MTA SSL の設定ファイル(/etc/courier/esmtpd-ssl ) から読んでいる .pem ファイルが /etc/courier/esmtpd.pem だったとしましょう。その場合、
$ sudo cd /etc/letsencrypt/live/example.com/ $ sudo cat privkey.pem cert.pem fullchain.pem > /etc/courier/esmtpd.pem $ sudo /etc/init.d/courier-mta-ssl restart
で良いはず。例によって、保証はしませんがね。
番外編2:Dovecot も設定しないとね
ついうっかり忘れていたので…。
Dovecot のprivate key のデフォルトは /etc/dovecot/private/dovecot.pem なので、こいつを /etc/letsencrypt/live/example.com/privkey.pem にリンクしておかないとですな。
$ sudo ln -s /etc/letsencrypt/live/example.com/privkey.pem dovecot.pem $ sudo doveadm reload