Caddy という web server がデフォルトTLSというポリシーで、Let’s Encrypt を簡単に設定出来て、証明書の自動更新をしてくれるようだったので使ってみた。Let’s Encrypt は無料でTLS証明書使えるサービスです。
Caddy のインストール
https://caddyserver.com/download から、ダウンロードするとバイナリが落ちてくるので、それを実行するだけです。バイナリ生成時に、Select Features として、追加機能を入れる事ができます。
Caddy の設定
/path/to/caddy.conf
hoge.example.com {
tls [email protected]
}
最小構成だと、ドメインに対して自分のメールアドレスを設定したら動くみたいです。ecpplus.net
のドメインだと動いたけれど、 ecp.plus
のドメインだと動かなかった。あまり調べていないけれど、Let’s Encrypt 側で何かやる必要がありそう。
Caddy の起動
80, 443 ポートをListenするので、sudo が必要です。
sudo caddy --conf /path/to/caddy.conf --agree -email="[email protected]"
--agree
は、Agree to Let’s Encrypt Subscriber Agreement で、-email
は Default Let’s Encrypt account email address とのことです。
これで、 https://example.com としてサーバが立ち上がります。http でアクセスしても自動的に https に遷移します。
Caddy のコマンド引数
$ caddy --help
Usage of caddy:
-agree=false: Agree to Let's Encrypt Subscriber Agreement
-ca="https://acme-v01.api.letsencrypt.org/directory": Certificate authority ACME server
-conf="": Configuration file to use (default=Caddyfile)
-cpu="100%": CPU cap
-email="": Default Let's Encrypt account email address
-grace=5s: Maximum duration of graceful shutdown
-host="": Default host
-http2=true: HTTP/2 support
-log="": Process log file
-pidfile="": Path to write pid file
-port="2015": Default port
-quiet=false: Quiet mode (no initialization output)
-revoke="": Hostname for which to revoke the certificate
-root=".": Root path to default site
-version=false: Show version
Caddy の機能
https://caddyserver.com/docs に、ドキュメントがあります。
気になった機能
markdown
で、Caddy 自体が Markdown を HTML に変換してくれる。テンプレートの指定もできる。デフォルトで入ってるのは面白いかも。git
で、git push
で自動的にサイト更新出来るので、markdown
と合わせてお手軽なサイトに便利そう。gzip
は使えるぽいですが、キャッシュ系の機能はまだないっぽいのでm現状だと別で用意する必要がありそうです。fastcgi
で指定すれば、裏でWordpressとか動かしても大丈夫そうです。proxy
でリバースプロキシの設定もできるので、Rails とか裏においても大丈夫そうです。websocket
で、WebSocket のコネクションが張られたときに実行するコマンドが指定できる。startup
,shutdown
で、起動・停止時に任意のコマンドを実行できる。例えば Rails のアプリケーションサーバを立ち上げるとか。
安いTLS証明書使ってたけど、失効したら乗り換えても良いかもという感じがしました。