トラブルシューティングの手順は、Google マネージド SSL 証明書を使用しているか、セルフマネージド SSL 証明書を使用しているかによって異なります。
Google マネージド証明書のトラブルシューティング
Google マネージド証明書の場合、次の 2 つのステータスがあります。
- マネージド ステータス
- ドメイン ステータス
マネージド ステータス
証明書のステータスを確認するには、次のコマンドを実行します。
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(name,managed.status)"
マネージド ステータスの値は次のとおりです。
マネージド ステータス | 説明 |
---|---|
PROVISIONING |
Google マネージド証明書が作成され、Google Cloud は認証局と連携して証明書に署名します。 Google マネージド証明書のプロビジョニングには、DNS とロードバランサの構成の変更がインターネットを経由して伝播された時点から最長で 60 分かかります。最近 DNS 構成を更新した場合、変更が完全に反映されるまでにかなりの時間がかかる可能性があります。通常は数時間程度ですが、世界的な反映には最長で 72 時間かかることもあります。DNS の伝播の詳細については、変更の伝播をご覧ください。 証明書が |
ACTIVE |
Google マネージド SSL 証明書が認証局から取得されます。ロードバランサで使用できるまでに、さらに 30 分かかる可能性があります。 |
PROVISIONING_FAILED |
証明書が実際に ACTIVE である場合でも、簡単に PROVISIONING_FAILED を確認できる場合があります。ステータスを再確認してください。ステータスが PROVISIONING_FAILED のままの場合、Google マネージド証明書は作成されましたが、認証局は署名できません。Google マネージド SSL 証明書の使用のすべての手順を完了していることを確認してください。プロビジョニングが成功するかステータスが PROVISIONING_FAILED_PERMANENTLY に変わるまで、Google Cloud は再試行します。 |
PROVISIONING_FAILED_PERMANENTLY |
Google マネージド証明書は作成されましたが、認証局は DNS またはロードバランサの構成の問題により署名できません。この状態では、Google Cloud はプロビジョニングを再試行しません。 Google マネージド SSL 証明書の置き換えを作成し、置き換え用の証明書がロードバランサのターゲット プロキシに関連付けられていることを確認してください。Google マネージド SSL 証明書の使用のすべてのステップを確認または完了します。その後、完全にプロビジョニングに失敗した証明書を削除できます。 |
RENEWAL_FAILED |
ロードバランサまたは DNS 構成に問題があるため、Google マネージド証明書を更新できませんでした。マネージド証明書内のドメインまたはサブドメインが A/AAAA レコードを使用してロードバランサの IP アドレスを参照していない場合、更新処理は失敗します。既存の証明書は引き続き利用できますが、まもなく期限切れとなります。構成を確認してください。 ステータスが 証明書の更新の詳細については、Google マネージド SSL 証明書の更新をご覧ください。 |
ドメイン ステータス
ドメインのステータスを確認するには、次のコマンドを実行します。
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(managed.domainStatus)"
この表では、ドメイン ステータスの値について説明します。
ドメイン ステータス | 説明 |
---|---|
PROVISIONING |
ドメインに対して Google マネージド証明書が作成されます。Google Cloud は認証局と連携して証明書に署名します。 |
ACTIVE |
ドメインは、証明書をプロビジョニングするために正常に検証されました。SSL 証明書が複数のドメイン用である場合は、すべてのドメインが ACTIVE ステータスで、証明書のマネージド ステータスも ACTIVE である場合にのみ、証明書をプロビジョニングできます。 |
FAILED_NOT_VISIBLE |
ドメインの証明書のプロビジョニングが完了していません。次のいずれかが問題である可能性があります。
PROVISIONING の場合、ドメイン ステータスが FAILED_NOT_VISIBLE であっても、Google Cloud はプロビジョニングを再試行します。 |
FAILED_CAA_CHECKING |
ドメインの CAA レコードの構成の問題により、証明書のプロビジョニングに失敗しました。正しい手順で行っていることを確認します。 |
FAILED_CAA_FORBIDDEN |
ドメインの CAA レコードが、Google Cloud が使用する必要がある CA を指定していないため、証明書のプロビジョニングに失敗しました。正しい手順で行っていることを確認します。 |
FAILED_RATE_LIMITED |
認証局にレート制限付きの証明書署名リクエストがあるため、証明書のプロビジョニングに失敗しました。新しい証明書のプロビジョニング、新しい証明書の使用への切り替え、前の証明書の削除が可能です。また、Google Cloud サポートに連絡することもできます。 |
マネージド証明書の更新
マネージド証明書内のドメインまたはサブドメインがロードバランサの IP アドレスを参照していない場合、またはロードバランサの IP とともに別の IP を参照している場合、更新処理は失敗します。更新の失敗を回避するには、すべてのドメインとサブドメインがロードバランサの IP アドレスを参照している必要があります。
セルフマネージド SSL 証明書のトラブルシューティング
このガイドでは、セルフマネージド SSL 証明書の構成に関する問題のトラブルシューティングについて説明します。
証明書を解析できない
Google Cloud Platform では、PEM 形式の証明書が必要です。証明書が PEM 形式の場合は、次の点を確認してください。
次の OpenSSL コマンドを使用して証明書を検証します。CERTIFICATE_FILE
は、証明書ファイルのパスで置き換えます。
openssl x509 -in CERTIFICATE_FILE -text -noout
OpenSSL が証明書を解析できない場合:
- CA にお問い合わせください。
- 新しい秘密鍵と証明書を作成します。
共通名またはサブジェクト代替名がない
Google Cloud では、証明書に共通名(CN
)またはサブジェクト代替名(SAN
)属性のどちらかを設定する必要があります。詳細については、CSR を作成するをご覧ください。
どちらの属性も設定されていない場合に Google Cloud でセルフマネージド証明書を作成しようとすると、次のようなエラー メッセージが表示されます。
ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
- The SSL certificate is missing a Common Name(CN) or Subject Alternative
Name(SAN).
秘密鍵を解析できない
Google Cloud では、秘密鍵の基準を満たす PEM 形式の秘密鍵が必要です。
次の OpenSSL コマンドで秘密鍵を検証します。PRIVATE_KEY_FILE
は秘密鍵のパスで置き換えます。
openssl rsa -in PRIVATE_KEY_FILE -check
次のレスポンスは、秘密鍵の問題を示しています。
unable to load Private Key
Expecting: ANY PRIVATE KEY
RSA key error: n does not equal p q
RSA key error: d e not congruent to 1
RSA key error: dmp1 not congruent to d
RSA key error: dmq1 not congruent to d
RSA key error: iqmp not inverse of q
この問題を解決するには、新しい秘密鍵と証明書を作成する必要があります。
パスフレーズを含む秘密鍵
OpenSSL でパスフレーズが求められた場合、秘密鍵からパスフレーズを削除してから、Google Cloud で使用する必要があります。次の OpenSSL コマンドを使用できます。
openssl rsa -in PRIVATE_KEY_FILE \ -out REPLACEMENT_PRIVATE_KEY_FILE
プレースホルダを有効な値に置き換えます。
PRIVATE_KEY_FILE
: パスフレーズで保護されている秘密鍵のパスREPLACEMENT_PRIVATE_KEY_FILE
: 書式なしテキストの秘密鍵のコピーを保存するパス。
有効期限が近い中間証明書
サーバー(リーフ)証明書の前に中間証明書が期限切れになった場合、CA がベスト プラクティスに従っていない可能性があります。
中間証明書が期限切れになると、Google Cloud で使用されるリーフ証明書が無効になることがあります。これは、次のように SSL クライアントによって異なります。
- 一部の SSL クライアントは、リーフ証明書の有効期限のみを確認し、期限切れの中間証明書を無視します。
- 一部の SSL クライアントは、期限切れの中間証明書を持つチェーンを無効として扱い、警告を表示します。
この問題を解決するには:
- CA が新しい中間証明書に切り替わるのを待ちます。
- 新しい証明書をリクエストします。
- 新しい鍵で新しい証明書を再度アップロードします。
CA が中間証明書に対するクロス署名を許可している場合もあります。CA に確認してください。
RSA 公開指数が大きすぎる
次のエラー メッセージは、RSA 公開指数が 65537 より大きい場合に表示されます。RFC 4871 で指定されているように、必ず 65537
を使用してください。
ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
- The RSA public exponent is too large.
target-proxy から SSL 証明書を削除する
次の手順で、ターゲット https プロキシに適用されている単一の SSL 証明書を削除する方法を示します。
target-https-proxy を一時ファイルにエクスポートします。
gcloud compute target-https-proxies export TARGET_PROXY_NAME > /tmp/proxy
/tmp/proxy
ファイルを編集して次の行を削除します。sslCertificates: - https://www.googleapis.com/compute/v1/projects/...
/tmp/proxy
ファイルをインポートします。gcloud compute target-https-proxies import TARGET_PROXY_NAME \ --source=/tmp/proxy
省略可: SSL 証明書を削除します。
gcloud compute ssl-certificates delete SSL_CERT_NAME
次のように置き換えます。
TARGET_PROXY_NAME
: ターゲット HTTPS プロキシ リソースの名前。SSL_CERT_NAME
: SSL 証明書の名前。