- blogs:
- cles::blog

dehydrated をつかって Let's Encript の証明書を取得(http-01編)






Let's Encrypt は誰でも無料で利用できる SSL 証明書ですが、有効期間が90日しかない*1ので定期的な更新の自動化が欠かせません。
これを行うためのクライアントとしてはオフィシャルな Certbot がありますが、実行に sudo を要求するので、レンタルサーバなどで root 権限を持っていない場合には利用することができません。その他にも Python が必要だったりと使い勝手があまりよくありません。というわけで、sudo がなくても実行できるクライアントを探してみたところシェルスクリプトベースの dehydrated(letsencrypt.sh) を見つけました。
自分のサーバやさくらのレンタルサーバでも以下の手順で動作させることができました。
WELLKNOWN ディレクトリの中身のファイルについては HTTPd 経由で外部からアクセスできる必要があります。
これらに問題なくアクセスできれば、 Let's Encript からの証明書が certs/(FQDN) に格納されます。
具体的には
- cert.pem(証明書)
- chain.pem(中間証明書)
- fullchain.pem(証明書+中間証明書)
- privkey.pem(秘密鍵)
というファイル群ができているはずなので、メールやウェブなどの各種デーモンの設定ファイルから生成された証明書や秘密鍵を使うように設定すればOK。
† 更新の自動化
証明書の更新は cron などで定期的に dehydrated -c を実行してやるだけですが、例えば更新したあとに httpd を graceful したい場合には以下のような hook.sh スクリプトを作って、config の HOOK に設定してやれば、証明書が更新された時だけサービスを再起動するようなことができます。
また、qmail-tls のファイルは以下のような感じで更新できます。
† 2017/02/05 追記
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/8962
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110628)
3 . 年次の人間ドックへ(110257)
4 . 2023 年分の確定申告完了!(1つめ)(109806)
5 . 三菱鉛筆がラミーを買収(109703)