ZeroSSL ならIPアドレスのサーバ証明書が取得できる

IPアドレスサーバ証明書が欲しい場合があります。そうすれば、ドメインを取得せずともサーバとHTTPS通信ができるようになります。

その他にも例えばDNS over HTTPSではIPアドレスでアクセス出来るように、有効な証明書がセットされていたりします。

しかし、Let's Encryptでは、IPアドレスサーバ証明書は取得できません

~$ sudo certbot certonly --nginx -d 160.16.124.39
Requested name 160.16.124.39 is an IP address. 
The Let's Encrypt certificateauthority will not issue certificates for a bare IP address.

ZeroSSLでは出来るらしいので試す。

ZeroSSL

下記記事でも紹介されている、無料のサーバ証明書を取得できるZeroSSLではIPアドレス証明書が取得できるようです
zenn.dev

とはいえ特別なことはなく、通常通りアカウントを取得し、ブラウザでIPアドレスを指定してverifyを通せば良いだけです。そうすれば証明書と秘密鍵がダウンロード可能となります。

f:id:ASnoKaze:20210118231726p:plain

設定する

Webサーバに証明書と設定を埋め込めばこの通り

https://160.16.124.39

f:id:ASnoKaze:20210118232153p:plain

(2021年t月 現在、サーバ事情で上記IPの証明書はもう利用しておりません)

おまけ

CAによるIPアドレス証明書の発行に関して

CA/B ForumのBaseline Requirements では、「3.2.2.5 Authentication for an IP Address」に幾つかのverify方法が指定されている。今回は「3.2.2.5.1 Agreed-Upon Change to Website」で記述されている検証方法を使用しており、/.well-known/pki-validationに指定されたファイルを設置することでIPアドレスの所有権が検証されている。

また、同様にCA/B Forumによって「Guidance on IP Addresses in Certificates」というガイドラインも公開されている。