ZeroSSL

無料発行できる SSL サーバ証明書 ZeroSSL(ゼロエスエスエル)についてまとめています。

ZeroSSL は Let’s Encrypt を無料発行できる Web サイトの一つでしたが、
独自の CA(証明書発行局)になりました。2020年5月にリリースを出しています。

中間証明書の上層は Sectigo になっています。
Sectigo は Comodo から SSL サーバ証明書のブランドを変更していて、
現在有料のサーバ証明書として支持されています。

Sectigo

Caddy が ZeroSSL の証明書発行に対応しました。
ACME を使用する場合は Web サイトでの発行数制限が発生しません。
Let’s Encrypt とレート制限が異なり、 Let’s Encrypt の採用が難しい場合、
ZeroSSL を用いての SSL 化を実現できるようになりました。

🎈 zerossl.info.gf

サイト運営者が FreeDNS のサブドメインを用いて ZeroSSL 証明書を使用しています。


公式サイト

2020年9月現在、Facebook ページも存在しますが、投稿がありません。


ZeroSSL を採用している関連サイト

SSL For Free

Let’s Encrypt を無料発行できる Web サイトの一つでしたが、
2020年5月より ZeroSSL へ切り替えました。
トップページは従来と一緒ですが、アカウントは ZeroSSL 共通で、
発行そのものは ZeroSSL と同じ Web システムで進行します。


ZeroSSL の無料範囲

Web 上から発行する場合、1 アカウント(メールアヂレス)で
無料発行できる証明書は 90 日期限の証明書 3 つまでとなります。
SSL For Free はシステム共通なので、2 サイト共通で 3 つまです。
他の Web サイトも同じシステムを採用している場合、共通になると見られます。

2020年9月現在、 この期限は更新時にもカウントの対象です。
したがって、Web 上での証明書発行・更新は無料ではまともに使用できず、
実質有料で使用する事があります。

ACME を用いた場合はこの制限がありません。
90 日証明書を無制限で発行・更新する事ができます。
公式ドキュメントに記載がありませんが、API も無制限の対象となる可能性があります。
そのため、少なくても ACME を用いた自動発行・更新は
ZeroSSL を無料使用するための必須条件となります。


Web 発行・更新手順

SSL サーバ証明書の発行と英語サイトに慣れているのであれば、
問題なく進められるでしょう。SSL for Free も手順は一緒です。

  1. Web サイトのトップページより証明書を発行したいドメイン名を入力します。
    www など、サブドメインがある場合は、明確にそれを含めて下さい。
  2. アカウントを登録します。メールアドレスとパスワードを入力します。
    すでに生成している場合はそれを用いてログインします。
  3. New Cerificate 画面になります。
    入力していたドメイン名が入っているのを確認し、Next Step で進めます。\
  4. 証明書の期限を選択します。無料対象は 90-Daay Certificate です。
  5. CSR & Contact となりますが、証明書に発行者を明記する必要がなければ
    Auto-Generate CSR を有効にした状態でかまいません。有効がデフォルトです。
  6. プランの選択です。Free になっている事を確認します。
  7. ドメインの認証になります。次を選択できます。 ドメイン認証
    • メールアドレス。特定名@ドメイン名 に認証メールが送られます。
    • ネームサーバ。CNAME ゾーンを設定します。
    • HTTP ファイルアップロード。テキストファイルをダウンロードし、サーバへ入れます。
  8. 無事に認証できると、すぐに証明書が発行されます。
    .zip ファイルでダウンロードできます。

ドメイン認証

ZeroSSL では次のいずれかでドメイン認証を行います。

ドメイン情報 WHOIS は参照・使用していないため、
WHOIS プライバシー(名義代行)を解除する必要はありません。

メールアドレス

メールアドレスによる認証は有料のドメイン認証を行う SSL サーバ証明書では
おなじみの認証方法です。Let’s Encrypt はこの認証方法を提供していません。

次のメールアドレスから選択できます。

サブドメインで申請している場合、サブドメインとドメインで選択できます。
選択したメールアドレスに認証メールが送られます。

届いた認証メールには Verification Key が記載されています。
この文字列を Web サイトへ入力して下さい。

ネームサーバ

CNAME ゾーンで指定します。画面に表示されます。

  • Name 申請するドメイン名にサブドメインが付加されています。
    付加されているサブドメインでレコードを追加する事になります。
  • Point To 値として指定します。
    「●●●●.comodoca.com」と表示されています。かなり長い値です。
  • TTL 「3600 (または より小さく)」とあります。
    新規追加になるので、特に影響はありません。

レコードの追加を行った後、Web サイトへ戻って進めて下さい。
ネームサーバによって確認できるのに時間を要するかもしれません。

HTTP ファイルアップロード

.txt ファイルをダウンロードし、
ドメイン名/.well-known/pki-validation/ 内にアップロード、
http://ドメイン名/.well-known/pki-validation/●●●.txt で参照できる状態にします。

Apache で .htaccess を用いている場合など、アップロード先にご注意下さい。


REST API

Documentation - REST API | ZeroSSL

有料アカウントで提供するように記載がありますが、
運営者が確認したところ、無料アカウントでも API アクセスができています。
おそらく API を用いて無制限に証明書を発行する事を考慮しているからでしょう。


サードパーティーでの対応

Documentation - ACME | ZeroSSL

ACME による発行を行うアプリ・サービスで、
ACME CA エンドポイントを設定・変更できる場合は
ZeroSSL での発行が容易に可能になります。

2020年7月 ACME のドキュメントが公開されました。
これにより、サードパーティーでの ZeroSSL 自動発行・更新が可能になっています。

ACME を用いた場合、90 日証明書の発行・更新は無制限になります。

Caddy v2

Using ZeroSSL’s ACME endpoint | Caddy Forum

元々 Caddy 2 では ACME エンドポイントと API キーを用いて使用できましたが、
Caddy 2.2 より API キーの代わりに EAB(キーID・Mac キー)に対応しています。
これにより ZeroSSL 証明書を Caddy で容易に使用できるようになりました。
API キーおよび EAB は ZeroSSL Web サイトからログインした時の Developer ページから
API キーの確認・リセットおよび EAB ID・Mac キーの発行が行えます。

Caddy was posted on the ZeroSSL website | Caddy Forum

ZeroSSL の話題は当初自分がフォーラムに投稿しているのがきっかけでした。


Q&A

Let’s Encrypt より ZeroSSL へ切り替えるメリットは?

ZeroSSL は Web サイトでの場合、
無料で発行できる制限は 90 日期限の証明書 3 つまで、となっています。
これより多くの証明書を要する場合や 1 年期限の証明書は有償です。

Let’s Encrypt は 90 日期限の証明書のみですが、発行数制限はゆるいです。
マルチドメイン証明書やワイルドカード証明書も無料で発行できます。
すでに多くのアプリやサーバ、Web サービスで採用されている実績もあり、
Let’s Encrypt の使用に満足していれば、ZeroSSL の移行は検討しないでしょう。

一方 Public Suffix List に登録されていない不特定多数が使用するサブドメインで、
Let’s Encrypt を使用するとレート制限で発行・更新で不具合が発生する場合、
代わりに ZeroSSL を選択するメリットがあります。

レート制限はありますか?

ZeroSSL では現在のところレート制限を設けていないようです。
その代わりが Web 上からは 1 つのアカウント(メールアドレス)で
90 日証明書が 3 つまで無料という制限となります。

ACME を用いた発行・更新ではこの制限もなく使用できるので、
ZeroSSL を無料でまともに使用するのは必須条件となります。