話題の記事

ブラウザから無料で簡単に証明書を発行できる ZeroSSL

ウィスキー、シガー、パイプをこよなく愛する大栗です。

最近ブラウザから簡単に証明書を発行できる ZeroSSL というサービスで証明書を発行したことがあったのでまとめてみます。

ZeroSSL

(8月21日追記) ACME 経由であれば無制限に無料で証明書を発行できる旨を追記しました

ZeroSSL

無料で SSL/TLS 証明書を発行できるサービスと言うと Let's Encrypt を利用されている方が多いと思います。2023年8月時点で Let's Encrypt が発行している有効な証明書は2億8000万を超えています1。Let’s Encrypt は素晴らしいサービスですが、単一障害点になっていることに警鐘を鳴らしているセキュリティ研究者もいます2。別の選択肢として ZeroSSL を紹介しています。

Let's Encrypt では certbot の様なコマンドを使用して SSL/TLS 証明書を発行しますが、ZeroSSL はブラウザでも証明書を発行可能となっており手軽に証明書を使用することができます。また有料になりますが、1年間有効化証明書も発行できます。

なお Free プランでは 90 日期限の証明書が3枚発行できる3ようです。それ以上証明書を発行する場合には有料プランを利用しましょう。

(8月21日追記) ACME 経由であれば無制限に発行できるとのコメントを頂きました。ありがとうございます。ACME 機能を使用すると90日間の証明書をマルチドメイン、ワイルドカードで無制限に無料で発行できるようです。

Unlimited Certificates, Free of Charge:

By using ZeroSSL's ACME feature, you will be able to generate an unlimited amount of 90-day SSL certificates at no charge, also supporting multi-domain certificates and wildcards. Each certificate you create will be stored in your ZeroSSL account.

ACME Documentation - ZeroSSL

やってみる

まず ZeroSSL のサイトを開きます。証明書を発行したいドメインをサイト上部の入力欄に記述してNext Stepをクリックします。

アカウントの作成

ZeroSSL のアカウントを持っていない場合には、Email とパスワードを入力してNext Stepをクリックします。

証明書の内容設定

対象のドメインを確認してNext Stepをクリックします。有料ですがワイルドカード証明書を発行する場合はI need a wildcard certificateにチェックを入れます。

証明書の期間を選択します。1年の場合は有料です。選択してNext Stepをクリックします。

CSR の設定を行います。ZeroSSL 側で発行した CSR を使用する場合はAuto-Generate CSRを有効にします。CSR を既に作成している場合はAuto-Generate CSRを無効、Paste Existing CSRを有効にして CSR に内容をペーストします。CSR を作成方法を選択したらNext Stepをクリックします。

注文するプランを確認します。ここでは無料で証明書を発行するため Free を選択しています。プランを選択したらNext Stepをクリックします。

ドメインの検証

証明書を発行するドメインを検証します。検証用法は3種類です。

  • メール認証
    • ドメインの管理者用メールアドレスに届いた認証キーを送信する
  • DNS (CNAME)
    • 指定されたサブドメインを CNAME で登録します
  • HTTP ファイルアップロード
    • 対象ドメインの Web サーバーの/.well-known/pki-validation/に指定されたファイルを配置します。

今回はDNS (CNAME)でドメインの検証を行っています。ドメインの検証方法でDNS (CNAME)を選択すると以下の様な表示になります。この内容をメモします。

次にメモした内容を DNS で CNAME レコードとして登録します。Cloudflare の DNS の場合にはプロキシせずに DNS のみで CNAME レコードを作成してください。

Cloudflare の DNS では登録すると以下のようになります。

ZeroSSL の画面に戻りNext Stepをクリックします。

Verify Domainをクリックしてドメインを検証を実施します。

証明書の発行

ドメインの検証が成功すると証明書が発行されます。数秒から数十秒待つと以下のようにダウンロード画面が表示されるのでDownload Certificateをクリックしてダウンロードします。Server Typeを指定するとインストールするサーバーに応じたフォーマットになります。

以降は必要に応じてですが、ダウンロードした証明書をサーバーにインストールした後にCheck Installationをクリックして証明書のインストールチェックを行えます。

証明書のインストールがチェックできると以下の様になります。これで ZeroSSL での証明書発行は完了です。

この様に ZeroSSL はブラウザから簡単に証明書を発行できるサービスになっています。

証明書の確認

ZeroSSL で発行した証明書をインストールした Web サーバーにアクセスして証明書を確認します。ZeroSSL の CA で発行した証明書であることが分かります。

さいごに

最近は Cloudflare を触っていることが多いです。Cloudflare を使用すると通常は Universal 証明書が発行されて追加料金なく HTTPS 通信が行えます。Cloudflare の証明書を使用すると、クライアントと Cloudflare の間の通信は暗号化されますが、Cloudflare とオリジンサーバーの間は別途設定が必要になります。Cloudflare では Origin CA certificates という機能4があり Cloudflare が署名した証明書を出力できるので、それをオリジンサーバーへ設定すると Cloudflare とオリジンサーバー間の通信が暗号化されます。Cloudflare からアクセスするので Cloudflare が署名した証明書でも事実上問題は少ないのですが、オリジンサーバーによっては公的な CA で署名しした証明書が必要な場合もあります。その様な場合に、特に検証目的などで無料で簡単に発行できる証明書が欲しくなるので ZeroSSL は使いやすいサービスと感じています。