Let's Encrypt、 漸く使えるようになりました。 具体的にどうやって使ったらいいんだろう、 と思ってたんですが、結構簡単に使えますねこれ。 素晴らしい、です。 おかげでbotnetのC&C server等でも広く使われるようになったとかってことですが。
ともあれ、 日本語の要諦サイトLet's Encrypt 総合ポータルもあり、 だいぶわかりやすくなってます。
基本的には、
certbot-autoをgit又はwget https://dl.eff.org/certbot-autoで取得- 認証原理は、
certbot-autoがLet's Encrypt側から指定されたhttp://.../.well-known/XXXXXXにfileを作る- Let's Encrypt側がそのfileを
GET、認証
- なので
standalone(certbot-autoが臨時のhttp serverを建て、Let's Encryptからのrequestを受ける)が基本 - その間本来のWWW serverを止めねばならないが、止めたくない時は「
--webroot」でDocumentRootを指定し、certbot-autoにfileを作らせる - 初回の(というか最後に成功した)command optionsを
/etc/letsencrypt/以下に保存しておき、次回以降「renew」commandでは省略可 renewを付けて走らせても、証明書期限が30日を切っていないと発動しない(無理やり更新するには--force-renewoptionが必要)--post-hookも指定して、apacheのreloadを自動化(これはrenewが走らないと発動しない。単純にrenewの終了status codeだと0になるので「&&」で繋ぐだけでは判別不能だった)- 証明書取得がうまく行くと、
/etc/letsencrypt/live/someserver.co.jp/以下に各種cert filesのsymbolic linkが作成されるので、/etc/apache2/site-enabled/default-ssl中でSSLCertificateFile等の示す先をここのcert.pem等にする(Apache2.4以上やnginxなら証明書+中間CA証明書にfullchain.pemが使える)
こちとら、apache2 serverを止めたくない状況だったので、
1
| |
(-w: webroot-path, -d: domain, -m: mail address)
更新は、/etc/cron.daily/certbotを作って、
1 2 | |
で良さそうです。sudo chmod a+x /etc/cron.daily/certbotを忘れずに。
certbot-autoは、実行するといきなりapt-get updateしてからpython2.7とか入れるのと幾つかのpackagesをupdateするので注意です。
また、Let's EncryptにしてからSSL Server Testをかけてみると、「Incorrect SNI alerts」というのが出るようになりました。
これは、/etc/apache2/site-enabled/default-sslの<VirtualHost _default_:443>にServerName XXXXXXとすることで解決しました。
cf. SSLテストで”Incorrect SNI alerts”を解決する
command log
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |