オープンソース

ACME対応のCertbotとは?SSLサーバ証明書の更新方法を解説

SSLサーバ証明書は、Webサイトや各種サービスの通信を暗号化し、安全に利用するために欠かせない仕組みです。一方で、SSLサーバ証明書には有効期間があり、期限が切れる前に更新作業を行う必要があります。近年、このSSLサーバ証明書の有効期間を段階的に短縮する動きが進んでいます。将来的には、現在よりも短い周期で証明書を更新しなければならなくなるため、手作業による管理では運用負荷が大きくなることが予想されます。

そこで注目されているのが、ACMEに対応した証明書更新の自動化です。中でもCertbotは、ACME対応ツールの代表的な存在として、多くの環境で利用されています。本記事では、Certbotの概要や、Certbotを利用するメリット、導入時のポイントについて解説します。

目次

SSLサーバ証明書とは

SSLサーバ証明書は、Webサイトと利用者の間でやり取りされる情報が暗号化されていることを証明するファイルです。インターネット上で安全な通信を行うため、Webサイトとユーザーの間でやり取りされるデータを暗号化し、第三者による盗聴や改ざんを防ぐことができます。SSLサーバ証明書は、電子証明書の発行や失効などの管理を行う「認証局(CA: Certificate Authority)」という第三者機関が発行しています。

SSLサーバ証明書の有効期間

SSLサーバ証明書は長期間同じものを使い続けてしまうと、Webサイトの信頼性の低下や不正利用のリスクがあります。そのため、必ず有効期間が設定されています。

近年、セキュリティの安全性やサイトの信頼性向上のため、この有効期間が年々短縮されつつあります。2025年4月に、ブラウザベンダーや認証局(CA)で構成される「CA/Browser Forum」は、2029年までにTLS/SSL証明書の最大有効期間を47日間とすることを決定しています。また、併せてドメイン審査情報(Domain Control Validation:DCV)も期間短縮の動きが見られています。詳細は下記ページでも紹介しています。

こうした動向により、今後はより短期間でのSSLサーバ証明書の更新作業が求められてきます。特に、手動で更新作業をしている場合は管理者の負担がより増加するため、証明書を自動更新する仕組みを導入することが必須となってきます。

ACMEとは

ACMEとは、Automated Certificate Management Environmentの略で、SSLサーバ証明書の取得や更新を自動化するための標準プロトコルです。

従来、SSLサーバ証明書を発行・更新する際には、証明書署名リクエスト(CSR)の作成・送信、ドメイン認証処理、証明書の取得、サーバへの設置といった作業が必要でしたが、ACMEを利用することで、これらの作業の多くを自動化できます。下記の図は、証明書の取得(更新)の流れを表していますが、ACMEは下記の図のオレンジで示した範囲を自動化することが可能です。

ACMEプロトコル

今後SSLサーバ証明書を利用していくためには、ACMEプロトコルへの対応が必要となります。具体的には、ACMEクライアントを利用した自動化や、ACME対応の認証局のサービスを利用することが挙げられます。

Certbotとは

Certbotとは、SSLサーバ証明書の取得や更新を自動化するためのACMEクライアントのツールです。Let's Encryptが提供している代表的なACMEクライアントで、Pythonで開発されています。

Certbotを利用することで、SSLサーバ証明書の取得、更新、Webサーバへの設定反映などを効率化できます。特に、ApacheNginxといったWebサーバとの連携に対応している点が特徴です。CertbotはLinux環境でよく利用されていますが、WindowsやmacOSでも利用できます。そのため、SSLサーバ証明書の自動更新を検討する際の有力な選択肢となります。また、Certbotは利用実績が多く、情報も豊富なため、導入しやすいACMEクライアントの一つです。

Certbotでできること

Certbotを利用すると、主に以下のような作業を効率化できます。

  • SSLサーバ証明書の取得
  • SSLサーバ証明書の更新
  • ApacheやNginxへの証明書設定
  • 証明書更新処理の定期実行
  • 更新後のWebサーバ再読み込みや再起動

これにより、証明書管理にかかるシステム管理者の負担を軽減できます。特に複数のWebサイトやサーバを管理している場合、Certbotによる自動化の効果は大きくなります。

Certbot renewによる証明書更新

Certbotでは、取得済みのSSLサーバ証明書を更新するために、Certbot renewコマンドを利用します。Certbot renewを実行すると、Certbotが管理している証明書の有効期限を確認し、更新が必要な証明書だけを更新します。更新時期に達していない証明書はスキップされるため、Certbot renewを定期的に実行することで、SSLサーバ証明書の更新漏れを防ぎやすくなります。

なおCertbot renewは、cronやsystemd timerと組み合わせて自動実行することができます。また、証明書更新後にWebサーバを再読み込み・再起動する設定を行うことで、更新された証明書をサービスに反映することができます。ただし、Webサーバの再起動方法や更新タイミングは、システム構成によって異なります。本番環境では、サービスへの影響や更新失敗時の通知方法も含めて設計することが重要です。

Certbotの認証方式

Certbotでは、ACMEで利用される代表的なドメイン認証処理の方式に対応しています。主な方式として、HTTP-01チャレンジとDNS-01チャレンジがあります。どちらの方式を選ぶべきかは、サーバ構成やDNSの管理方法、利用する証明書の種類によって異なります。

HTTP-01チャレンジ

HTTP-01チャレンジは、CAから指定されたトークンをWebサーバ上に配置し、認証局がそのファイルにアクセスできることを確認する方式です。Webサイトがインターネットからアクセス可能な場合に利用しやすい方法です。

DNS-01チャレンジ

DNS-01チャレンジは、CAから指定されたトークンを、DNSのTXTレコードに登録する方式です。インターネットから直接アクセスできないサーバや、ワイルドカード証明書を利用する場合などに検討されます。

DNS-01チャレンジとDNS管理の自動化

DNS-01チャレンジを利用する場合、DNSのTXTレコードを更新する必要があります。手動でTXTレコードを設定することもできますが、証明書更新のたびにDNS設定変更が必要になるため、運用負荷が高くなる場合があります。そのため、DNS APIを利用してTXTレコード更新を自動化できる環境を整備しておくことで、CertbotによるDNS-01チャレンジの運用を効率化できます。

特に、PowerDNSとPoweradminを組み合わせた構成は、OSSベースでDNS管理を行いたい場合の選択肢の一つです。PowerDNSはAPIによるDNSレコード操作に対応しており、ACMEクライアントと連携したDNS-01チャレンジ自動化を行いやすい特徴があります。また、Poweradminを利用することで、WebブラウザからDNSレコード管理を行うこともできます。DNS管理をGUI化しつつ、自動化との両立を行いたいケースでも活用可能です。

インターネットから直接アクセスできない内部サーバや、ワイルドカード証明書を利用する環境では、DNS-01チャレンジの利用を検討するケースが増えています。今後、SSLサーバ証明書更新の自動化を進める中で、DNS運用も含めた設計が重要になります。

Certbot導入時のポイント

Certbotを導入する際には、単に証明書を取得できるようにするだけでなく、運用全体を考慮することが重要です。以下のようなポイントで導入を検討することをおすすめします。

  • 対象サーバでCertbotを利用できるか
  • 利用するWebサーバがApacheもしくはNginxか
  • HTTP-01とDNS-01のどちらを使うか
  • 証明書更新後にWebサーバの再読み込みが必要か
  • 更新処理をcronで実行するか、systemd timerで実行するか
  • 更新失敗時に気づける監視を用意するか

特に、証明書の更新後にはWebサーバやアプリケーションの再読み込みが必要になる場合があります。そのため、更新のタイミングやサービスへの影響を事前に確認しておく必要があります。

Certbotと他のACMEクライアントの違い

ACMEに対応したクライアントには、Certbotのほかにも、acme.shやLEGOなどがあります。それぞれに特徴があり、利用環境や目的によって適したツールは異なります。

例えば、Certbotは、ApacheやNginxとの連携機能があり、Webサーバの証明書管理を自動化しやすい点が特徴です。一方、acme.shは軽量で多様なDNSサービスに対応している点、LEGOはDockerKubernetesとの相性が良い点などが特徴です。

ACMEクライアントの選定では、単に証明書を発行できるかだけでなく、運用環境に合った自動化ができるかを確認することが大切です。

SSLサーバ証明書の自動更新は早めの対応が重要

SSLサーバ証明書の有効期間短縮により、今後は証明書更新の頻度が高くなることが見込まれます。今後、Webサイトや各種サービスを安定して運用するためには、SSLサーバ証明書の更新を手作業に頼るのではなく、Certbotなどを活用して自動化することが重要です。

Certbotは、代表的なACMEクライアントです。Certbotを活用することで、SSLサーバ証明書の取得・更新を自動化し、運用負荷を軽減できます。特に、LinuxサーバやApache/Nginxを利用している環境では、Certbotは有力な選択肢となります。

Certbotの詳しい導入・更新方法

デージーネットでは、SSLサーバ証明書の有効期間短縮に向けた対策として、ACMEやCertbotを使用した証明書自動更新について調査を行っています。

調査報告書では、以下のような内容を解説しています。

  • SSLサーバ証明書の有効期間短縮の動向
  • ACMEの概要
  • Certbot、acme.sh、LEGOなどのACMEクライアント比較
  • Certbotによる証明書発行方法
  • Certbot renewによる証明書更新方法
  • cronやsystemd timerを使ったCertbot自動更新設定
  • HTTP-01チャレンジとDNS-01チャレンジの利用例

Certbotの具体的なインストール方法やコマンド例、設定手順を確認したい方は、以下の調査報告書をご覧ください。

デージーネットの取り組み

デージーネットでは、OSSを活用したシステム構築・運用の経験をもとに、CertbotをはじめとしたACME対応ツールの導入や、SSLサーバー証明書更新の自動化についてご相談を承っています。お客様のサーバの新規構築またはリプレースにおいて、主にCertbotを用いたSSL証明書の自動更新を含めた、証明書更新におけるシステム担当者の負担を軽減する提案を行っておりますので、お気軽にお問い合わせください。なお、導入後の保守サポートも提供しております。

情報の一覧

SSLサーバー証明書の有効期間短縮に向けた対策について

無料資料ダウンロード

本書では、SSLサーバー証明書の有効期間短縮に関する動向と、将来的な対策について解説しています。

SSL証明書の有効期限短縮対策に!自動更新可能なツール・サービス

OSS比較(SSL証明書自動更新)

SSLサーバ証明書の有効期間を短縮する動きが加速しており、運用負担の増大や更新漏れによるサービス停止といった課題が発生しています。このページでは、SSLサーバ証明書の動向や自動更新に使えるツールを紹介しています。

BINDに替わるDNSサーバ〜PowerDNS〜

OSS情報(PowerDNS)

PowerDNSは、オープンソースソフトウェアのDNSサーバで、管理ウェブインタフェースが利用できる便利なDNSシステムです。このページでは、PowerDNSの特徴、脆弱性の数、パフォーマンスについてご紹介します。

デモのお申込み

もっと使い方が知りたい方へ
操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。デモをご希望の方は、下記よりお申込みいただけます。

デモをご希望の方

デモの申し込みイメージ

ACME対応のCertbotとは?SSLサーバ証明書の更新方法を解説の先頭へ