こちらのブログで IP アドレスの証明書を無料で取得できると知ったので、やってみました。
ACME による自動化は扱いません。90 日間有効なので私は当面不要なのです。必要になったら頑張ります。
証明書の発行準備
ZeroSSL の Web サイトで証明書の作成手続きを進めます。
- ドメインのところに IP アドレスを入力、その他いろいろ入力
- Verify Domain のページまで進める
- Auth File をダウンロード
Web サーバーに Auth File を配置
Web サーバーはなんでもいいんですが、なんとなく ZeroSSL がスポンサーになっている Caddy を使います。Go で書かれているそうです。
$ sudo apt install caddy
Ubuntu 24.04 では上記で簡単にインストールでき、サーバーが起動します。service コマンドではなく systemctl コマンドでないと操作できないのでご注意ください。
/etc/caddy/Caddyfile
を設定ファイルとして読み込み、/user/share/caddy
をルートとした file_server (SMB とか NFS ではなく、Apache HTTPD みたいな静的なファイルの HTTP サーバー) が構成されています。
$ sudo mkdir -p /usr/share/caddy/.well-known/pki-validation/
$ sudo mv /path/to/your_auth_file /usr/share/caddy/.well-known/pki-validation/
として、ファイルを配置します。これで、Verify Domain のページにリンクがある http://public-ip-address/.well-known/pki-validation/your_auth_file にアクセスできるようになるはずです。
クラウドにサーバーがある場合、任意の IP アドレスからポート 80 に接続できるようにセキュリティー グループを構成するのを忘れないようにしてください。
証明書のダウンロード
ZeroSSL の Web サイトに戻り、Verify してもらいます。成功すると証明書を zip でくれます。
$ sudo apt install unzip
$ unzip public-ip-address.zip
$ ls
ca_bundle.crt certificate.crt private.key
忘れがちな中間証明書の結合をしておきます。サーバーで 1 ファイルだけ証明書を設定する場合は certificate.crt ではなく結合したファイルを設定するようにします。
$ cat certificate.crt ca_bundle.crt > chained.crt
後片付け
もう使わないなら Caddy は削除しちゃいましょう。
sudo apt autoremove caddy
クラウド利用の場合はセキュリティー グループの構成も元に戻しちゃってください。