OpenResty Edge の ACME モジュールで SSL/TLS 証明書を完全自動管理する方法
HTTPS が標準となった今日、SSL/TLS 証明書の管理は依然として多くのチームにとって課題です。申請、アップロード、更新、検証といった一連のプロセスで一つでもミスがあれば、サイト全体のアクセス障害につながる可能性があります。これまで、一般的なアプローチとして、Let’s Encrypt を利用した証明書の自動発行や、Edge コンソールでの SSL 証明書の手動アップロードを紹介してきました。本稿では、OpenResty Edge の ACME モジュールを通じて証明書管理を可能にする、新しい方法をご紹介します。
ACME モジュールとは
現代のウェブサイトアーキテクチャにおいて、SSL/TLS 証明書の申請、更新、管理は、ビジネスのセキュリティを確保する上で重要な要素です。しかし、運用チームにとって、このプロセスはとかく煩雑で、エラーを招きやすいものです。
OpenResty Edge では、ACME(Automatic Certificate Management Environment)モジュールが ACME プロトコルの中核機能を実装し、証明書の自動管理と発行をサポートします。これにより、ユーザーは大規模サイトの証明書ライフサイクルを、より柔軟かつ安全な方法で管理できるようになります。
このモジュールの主な機能は以下の通りです。
- 証書申請と自動更新:ACME プロトコルを通じて、申請から検証、更新(再発行)までの一連のプロセスを完全に自動化します。
- ドメイン所有権検証:HTTP-01 と DNS-01 の 2 種類の検証方式に対応しています。
- ACME サーバーとの連携とタスクスケジューリング:証明書発行タスクを一元的に管理し、自動再試行やポーリングによる更新を行います。
- 証書ストレージ、検索、および配布:Edge プラットフォームには証明書のストレージと配布メカニズムが組み込まれており、追加のクライアントは不要です。
ACME モジュールが必要な理由
これまで、OpenResty Edge のユーザーは、SSL/TLS 証明書を 2 つの方法で設定していました。手動で証明書をアップロードするか、Let’s Encrypt(LE)を使用して自動発行するかのいずれかです。これらの方法には、以下の課題がありました。
- Let’s Encrypt のレート制限:単一アカウントまたは単一ドメインでの発行頻度に制限がありました。
- 証明書の発行元が単一:複数の発行元(issuer)や企業内部 CA のニーズに対応できませんでした。
- 管理の複雑さ:マルチテナントやマルチドメインの環境では、証明書の更新時にエラーが発生しやすくなっていました。
ACME モジュールを通じて証明書を管理することで、以下のメリットが得られます。
- LE の制限を克服:複数の発行元(issuer)と複数アカウントの設定をサポートし、発行頻度制限に容易に対処できます。
- 柔軟な CA 選択:Let’s Encrypt の他に、ZeroSSL、Buypass、または自社で構築した ACME サービスも選択可能です。
- 一元的な管理:Edge プラットフォーム上で証明書の一元的な表示、配布、更新が可能となり、運用負担を軽減します。
ACME モジュールの使い方
まず、グローバル設定ページの証明書発行者(CA)で、証明書発行者情報を追加します。
次に、アプリケーションの SSL ページで、アプリケーション全体に共通の証明書を適用するか、または「証明書を追加」ボタンをクリックしてアプリケーションに特定の SSL 証明書を追加するかを選択します。
「証明書を追加」ボタンをクリックした後、ACME プロトコルに準拠する他の証明書発行者を使用して証明書を生成します。
他の ACME 発行者を使用して証明書を自動的に発行することも可能です。証明書を発行する前に、ドメインの DNS が正しく解決され、Edge Node ゲートウェイサーバーを指していることをご確認ください。
同じドメインに複数の ACME 証明書を設定する方法については、以下をご参照ください:アプリケーション内証明書
他の方法で証明書をアップロードしたい場合は、以下をご参照ください:
ベストプラクティスとよくある質問
Q1. ワイルドカード証明書に対応していますか?
はい、対応しています。DNS-01 認証方式によって実現されます。
Q2. 手動でアップロードした証明書と共存できますか?
はい、可能です。ACME モジュールは、手動でアップロードされた証明書と併用して管理でき、既存のデプロイメントに影響を与えません。
Q3. 更新に失敗した場合、どうすればよいですか?
ACME モジュールにはリトライおよびロールバックのメカニズムが備わっており、手動で再申請をトリガーできます。
OpenResty Edge について
OpenResty Edge は、マイクロサービスと分散トラフィックアーキテクチャ向けに設計された多機能ゲートウェイソフトウェアで、当社が独自に開発しました。トラフィック管理、プライベート CDN 構築、API ゲートウェイ、セキュリティ保護などの機能を統合し、現代のアプリケーションの構築、管理、保護を容易にします。OpenResty Edge は業界をリードする性能と拡張性を持ち、高並発・高負荷シナリオの厳しい要求を満たすことができます。K8s などのコンテナアプリケーショントラフィックのスケジューリングをサポートし、大量のドメイン名を管理できるため、大規模ウェブサイトや複雑なアプリケーションのニーズを容易に満たすことができます。
著者について
章亦春(Zhang Yichun)は、オープンソースの OpenResty® プロジェクトの創始者であり、OpenResty Inc. の CEO および創業者です。
章亦春(GitHub ID: agentzh)は中国江蘇省生まれで、現在は米国ベイエリアに在住しております。彼は中国における初期のオープンソース技術と文化の提唱者およびリーダーの一人であり、Cloudflare、Yahoo!、Alibaba など、国際的に有名なハイテク企業に勤務した経験があります。「エッジコンピューティング」、「動的トレーシング」、「機械プログラミング」 の先駆者であり、22 年以上のプログラミング経験と 16 年以上のオープンソース経験を持っております。世界中で 4000 万以上のドメイン名を持つユーザーを抱えるオープンソースプロジェクトのリーダーとして、彼は OpenResty® オープンソースプロジェクトをベースに、米国シリコンバレーの中心部にハイテク企業 OpenResty Inc. を設立いたしました。同社の主力製品である OpenResty XRay動的トレーシング技術を利用した非侵襲的な障害分析および排除ツール)と OpenResty Edge(マイクロサービスおよび分散トラフィックに最適化された多機能
翻訳
英文版 の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!