コンテンツに移動
セキュリティ & アイデンティティ

RFC 8555(ACME)による一般公開証明書ライフサイクル管理の自動化

2022年4月4日
Google Cloud Japan Team

※この投稿は米国時間 2022 年 3 月 30 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Cloud をご利用のお客様が TLS を直接終端するワークロード、またはクラウドをまたぐワークロードとオンプレミスのワークロードのための一般公開証明書を取得できる Certificate Manager のプレビューが強化されることとなりました。これは、自動証明書管理環境(ACME)プロトコルによって実現されます。ACME プロトコルは、認証局が TLS 証明書のシームレスな自動ライフサイクル管理を可能にするために使用するのと同じプロトコルです。

これらの証明書は、Google Trust Services から提供されます。Google Trust Services は、Google がグローバル外部 HTTP(S) ロードバランサでお客様に代わって証明書を管理する際にデフォルトで使用しているのと同じ認証局(CA)です。マネージド証明書と非マネージド証明書の取得に同じ CA を使用することで、サービスを使用するすべてのデバイスでどちらの証明書も同様に利用できます。

また、Google Cloud をご利用のお客様は、より信頼性の高い TLS のデプロイも可能になります。これは、ACME に基づく共通の証明書ライフサイクル管理手法を、単一障害点(1 か所の認証局だけに依存すること)なく使用できるようにすることで実現されます。つまり、複数の ACME 認証局へのロードバランスやフェイルオーバーを安心して自由に行えるようになります。

使用方法

この機能を使用するには、外部アカウント バインディングと呼ばれる ACME の機能を使用するための API キーが必要です。これにより、証明書リクエストをお客様の Google Cloud アカウントに関連付けることができ、お客様ごとにレート制限をかけることが可能になります。API キーは以下のコマンドで簡単に取得できます。

読み込んでいます...

ACME の各実装は、API キーの指定方法によって若干異なりますが、人気の高い Certbot ACME クライアントの例として、構成は以下のようになります。

読み込んでいます...

実にシンプルです。このタスクを定期的に実行するようスケジュール設定するだけで、関連するワークロードの TLS 証明書を自動的に取得し、維持できるようになります。

Kubernetes ベースのワークロードの場合

Kubernetes を使用している場合、cert-manager(別の ACME クライアント)のおかげで、同じように簡単に行えます。ACME の URL と外部アカウント バインディングの詳細を構成で指定するだけです。ACME クライアントにより、Kubernetes Deployment が常に最新の証明書を保持できるようになります。

限定公開プレビューの発表

HTTPS 証明書管理に統一されたソリューションを使用したいというお客様の強いご要望を受けて、本日このサービスを開始しました。

本サービスと Google Trust Services を使用すると、YouTube や Google 検索などのサービスで Google が採用している業界最先端のデバイス適合性を、お客様の自社のプロダクトとサービスでも採用できます。

よくある質問

今回のリリースについて、皆様から最もよくいただくご質問に以下のとおり回答します。

どうすればアクセスできますか?

この限定公開プレビューへのアクセスは、こちらの登録フォームからお申し込みください。

Google が発行する証明書の有効期間は?

Google Trust Services が発行する証明書は、デフォルトで 90 日間有効です。ただし、ACME では、異なる有効期間の証明書を申請できます。これにより、申請者は有効期間が 1 日の証明書でも取得できますが、クロックずれと証明書有効期間のオーバーラップが懸念されることから、3 日より短い期間の証明書の使用はおすすめしません。

どのような形式のドメイン管理検証がサポートされますか?

ACME プロトコルでは、ドメイン管理検証のための複数の仕組みが定義されています。Google はそのうちの 3 つ、すなわち TLS-ALPN-01、HTTP-01、DNS-01 をサポートしています。

たとえば TLS-ALPN-01 は、HTTPS が使用されず、申請者が DNS レコードを動的に更新できない場合に適しているなど、3 つの仕組みそれぞれに適した用途があります。お客様のユースケースに最も適した仕組みをお選びください。

メールベースのドメイン管理検証はサポートしていますか?

サポートしていません。

ワイルドカード証明書は発行していますか?

はい、発行しています。ただし、他の認証局と同様、ワイルドカード証明書の取得には、DNS ベースのドメイン管理検証を現在使用している必要があります。

Punycode でエンコードされた Unicode のドメイン名用の証明書は発行していますか?

現在のところ、発行していません。

IP アドレスを格納した証明書は発行していますか?

はい、発行しています。ただし、現時点では、IANA が付与する IP アドレス ブロックを管理するお客様のみに発行しています。詳しくは、営業担当者にお問い合わせください。

ACME を使用して Google Cloud CA Service から限定公開証明書を取得できますか?

はい、ただし直接は使用できません。Google のパートナーである SmallStep が、Google Cloud CA Service からの証明書取得に使用できる ACME 登録機関(RA)を開設しました。

どのようなアルゴリズムとどれだけの長さの鍵をサポートしていますか?

ECC 証明書と RSA 証明書の両方の発行をサポートしています。詳細は、Google の認証実施規約CA 証明書リポジトリをご覧ください。

純粋な ECC ベースの証明書チェーンの証明書を提供していますか?

現在のところ、提供していません。

どのようなルート証明書を使用していますか?

Google のルート証明書と中間証明書はすべてこちらに掲載しています。どの証明書を使用するかは随時変更されます。

なお、重要な点として、Google では、ACME プロトコル経由で認証リクエストが送信されるたびに、適切な中間証明書を送信しています。

別の認証局の代わりに Google Trust Services を使用すべき理由は何ですか?

複数の優れた ACME 認証局を利用できます。

Google は、SSL をデプロイする企業が、ACME ベースの認証局を複数利用することで、あるプロバイダの可用性に問題がある場合でも、ダウンタイムなしにサイトの運営を継続できるような世界を想定しています。多様な地域で多数の証明書または保証が必要な場合は、GTS CA は特に適していると考えられます。

Google は、このサービスをクラウドのお客様が利用できるようにすることで、その堅牢性を生かし、Google Cloud 内で TLS を終端するワークロードのレイテンシを削減できるようになることを望んでいます。

最近発表された Certificate Manager はそれに代わるサービスですか?

いいえ。これは Certificate Manager を拡張し、TLS を自身で終端するワークロードが、Google がお客様に代わって証明書を管理するときに使用するのと同じ CA から証明書を取得できるようにするものです。

この ACME API により、お客様のワークロードの HTTPS 証明書ライフサイクル管理を簡素化できることを期待しています。

- セキュリティ担当プロダクト マネージャー Ryan Hurst
- ロード バランシング担当プロダクト マネージャー Babi Seal

投稿先