SSL 証明書のトラブルシューティング

トラブルシューティングの手順は、Google マネージド SSL 証明書を使用しているか、セルフマネージド SSL 証明書を使用しているかによって異なります。

Google マネージド証明書のトラブルシューティング

Google マネージド SSL 証明書のステータス

証明書のステータスを確認するには、次のコマンドを実行します。

gcloud beta compute ssl-certificates describe certificate-name \
    --global \
    --format="get(name,managed.status)"

マネージド ステータスの値は次のとおりです。

マネージド ステータス 説明
PROVISIONING Google マネージド証明書が作成され、Google Cloud は認証局と連携して証明書に署名します。
Google マネージド証明書のプロビジョニングには最長で 60 分かかります。

証明書が PROVISIONING 状態のままである場合は、正しい証明書がターゲット プロキシに関連付けられていることを確認してください。これは、gcloud compute target-https-proxies describe または gcloud compute target-ssl-proxies describe コマンドで確認できます。
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 証明書の使用のすべてのステップを確認または完了します。その後、永久にプロビジョニングに失敗した証明書を削除できます。

Google マネージド SSL 証明書のドメイン ステータス

ドメインのステータスを確認するには、次のコマンドを実行します。

gcloud beta compute ssl-certificates describe certificate-name \
    --global \
    --format="get(managed.domainStatus)"

この表では、ドメイン ステータスの値について説明します。

ドメイン ステータス 説明
PROVISIONING ドメインに対して Google マネージド証明書が作成されます。Google Cloud は認証局と連携して証明書に署名します。
Google マネージド証明書のプロビジョニングには最長で 60 分かかります。
ACTIVE Google マネージド SSL 証明書が認証局から取得されます。このドメインのプロビジョニングが完了しました。証明書がロードバランサで使用可能になるまでに、さらに 30 分かかる場合があります。
FAILED_NOT_VISIBLE ドメインへの証明書のプロビジョニングに失敗しました。次のいずれかが問題である可能性があります。 マネージド ステータスが PROVISIONING の間、Google Cloud は証明書のプロビジョニングを引き続き試行します。
FAILED_CAA_CHECKING ドメインの CAA レコードの構成の問題により、証明書のプロビジョニングに失敗しました。Google マネージド SSL 証明書の使用のすべての手順を完了していることを確認してください。
FAILED_CAA_FORBIDDEN ドメインの CAA レコードが Google Cloud が使用する必要がある CA を指定していないため、証明書のプロビジョニングが失敗しました。Google マネージド SSL 証明書の使用のすべての手順を完了していることを確認してください。
FAILED_RATE_LIMITED 認証局にレート制限付きの証明書署名リクエストがあるため、証明書のプロビジョニングに失敗しました。Google マネージド SSL 証明書の置き換え用の証明書を作成を再試行するか、Google Cloud サポートに連絡してください。

Google マネージド証明書の更新

Google が複数のドメインを持つマネージド証明書を更新する場合、いずれかのドメインまたはサブドメインがロードバランサの IP アドレスを指していない場合、更新プロセスは失敗します。マネージド証明書をプロビジョニングしたら、すべてのドメインとサブドメインが依然としてロードバランサの IP アドレスを指していることを確認して、更新の失敗を回避します。

セルフマネージド SSL 証明書のトラブルシューティング

証明書を解析できない

Google Cloud Platform では、PEM 形式の証明書が必要です。証明書が PEM 形式の場合は、次の点を確認してください。

次の OpenSSL コマンドを使用して証明書を検証します。certificate-file は、証明書ファイルのパスで置き換えます。

openssl x509 -in certificate-file -text -noout

OpenSSL が証明書を解析できない場合:

共通名またはサブジェクト代替名がない

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 クライアントは、期限切れの中間証明書を持つチェーンを無効として扱い、警告を表示します。

この問題を解決するには:

  1. CA が新しい中間証明書に切り替わるのを待ちます。
  2. 新しい証明書をリクエストします。
  3. 新しい鍵で新しい証明書を再度アップロードします。

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.