読者です 読者をやめる 読者になる 読者になる

カラクリサイクル

『輝かしい青春』なんて無かった人の雑記

h2o-proxy-letsencrypt を作り直した

Development Software

という話。


今回手直ししたモノ

github.com

で、これは何か

は、僕が以前に作って、微妙にクリーンではないコードのまま放置していたソフトウェアの一つで、実装の中身としては、

docker container への reverse proxy を h2oでしつつ、 さらにLet’s Encrypt で TLS 化する

という代物です。

それで、これの実装には元ネタが有って、一番最初 (だと思われる) 元ネタは、

docker container への reverse proxy を nginx で行なう

という

で、これの h2o 版として実装された、

が、 h2o-proxy-letsencrypt の元ネタです。まあ、h2o-proxy-letsencrypt はそれの発展形って感じですね。はい。

今回の改善点

んで、話は本題になるんですが、今回 (というか昨日かその前ぐらいに) h2o-proxy-letsencrypt に対し行なった修正点は、主に、

  1. 元のなるコンテナのベースの変更
  2. Let’s Encrypt の証明書取得 or 更新スクリプトの修正
    • これが一番カオスってて、かつコードもスッキリとしていなかった
  3. Let’s Encrypt のクライアントを、オフィシャルから bash ベースのモノに変更

という感じです。

また、今回の変更に際し、全面的に書き直した Dockerfile の一部のコードを、

から引用しており、また、その Dockerfile が GPLv3 だったため、 今回作り直した ファイルの内、 Dockerfile のみが GPLv3 に成っています。

あと、以前の h2o-proxy-letsencrypthttp-01 の challenge を使う様になっていたのですが、 それだと微妙にテストし辛いという事もあって、今回からは dns-01 challenge を CloudFlare で行なう様になっています。

もっとも、この辺りに関しては、h2o-proxy-letsencrypt が内部的に使っている Let’s Encrypt のクライントである、

の仕組みの中で自由に変更が可能なので、dns-01 challenge を行なう dns provider を変更したい、 という場合には、そちらを参照等すると良いかと思います。

ただ、今回の h2o-proxy-letsencryptDockerfile は cloudflare 向けの hook script を使う前提と成っているので、 その辺りについては Dockerfile に修正を加える必要が有ります。

以上

まあ良かったら良いので、もし使う機会等があれば試してみてください。

という事で今回の話は以上です。終ります。


github.com