レスポンス・キャッシュTLSハンドシェイクが失敗する
APIゲートウェイ・サービスを使用してAPIデプロイメントを作成するときに、レスポンス・キャッシュTLSハンドシェイクの失敗をトラブルシューティングする方法について学習します。
レスポンス・キャッシングが有効で、APIゲートウェイがTLSハンドシェイク障害でキャッシュ・ヘルスの問題を報告した場合、APIゲートウェイはキャッシュ接続パスに到達できますが、キャッシュ・ストアでTLSハンドシェイクを完了できません。
問題の症状
次の症状が1つ以上表示される場合があります。
- APIデプロイメントはアクティブですが、レスポンスはキャッシュに格納されません。
- レスポンス・キャッシュは異常として報告されます。
- 実行ログには、SSLハンドシェイク・タイムアウト、TLSハンドシェイク障害またはキャッシュ接続の失敗が含まれます。
- キャッシュされたレスポンスは機能しなくなりますが、APIは引き続きトラフィックを処理します。
考えられる理由
この問題は、次の1つ以上の理由で発生する可能性があります。
- キャッシュ・エンドポイントのホスト名またはポートが正しくありません。
- APIデプロイメントはTLSを使用するように構成されていますが、指定されたポートでキャッシュ・リスナーがTLS用に構成されていないか、必要な証明書がありません。
- キャッシュ・サーバーは、期限切れ、不完全または無効な証明書チェーンを提示します。
- ファイアウォール、プロキシ、ルート・ルール、ネットワーク・セキュリティ・グループ(NSG)またはセキュリティ・リストによって、TLSハンドシェイクがブロックまたは中断されます。
- ゲートウェイ・サブネットがキャッシュ・エンドポイントに確実に到達できません。
- 参照されるシークレットのキャッシュ認証資格証明が欠落しているか、期限切れであるか、正しくありません。
レスポンス・キャッシュ構成の確認
レスポンス・キャッシュ構成を確認し、次の設定がAPIゲートウェイで使用するキャッシュ・エンドポイントと一致することを確認します:
responseCaching.responseCache.servers[0].hostresponseCaching.responseCache.servers[0].portresponseCaching.responseCache.isSslEnabledresponseCaching.responseCache.isSslVerifyDisabledresponseCaching.responseCache.authenticationSecretIdresponseCaching.responseCache.authenticationSecretVersionNumberresponseCaching.responseCache.connectTimeoutInMs
レスポンス・キャッシュ構成が目的のキャッシュ・サーバーを指していることを確認します。APIゲートウェイでは、レスポンス・キャッシュ用に単一のキャッシュ・サーバー・ホストのみがサポートされます。
実行ログの確認
実行ログで、レスポンス・キャッシュTLSハンドシェイクの失敗またはキャッシュ接続の失敗を確認します。
キャッシュTLSエンドポイントの確認
キャッシュ・エンドポイントがゲートウェイからのTLS接続を受け入れる準備ができていることを確認します:
- キャッシュ・リスナーが構成済ポートでTLSを想定していることを確認します。
- 証明書検証が有効な場合に、APIゲートウェイが信頼する認証局(CA)に対してキャッシュ・サーバー・チェーンによって提示される証明書を確認します。
- 参照シークレットのキャッシュ・ユーザー名およびパスワードが有効であることを確認します。
- ゲートウェイ・サブネットと同じネットワーク・パスを使用するコンピュート・インスタンスから、
nc -vz <cache-host> <cache-port>を実行してTCP到達可能性を確認します。 openssl s_client -connect <cache-host>:<cache-port> -servername <cache-host> -showcertsを実行して、証明書チェーンおよびTLSハンドシェイクの結果を検査します。
レスポンス・キャッシュTLSの問題の修正
TLSハンドシェイク障害を解決するには、次のアクションを使用します:
- キャッシュ・エンドポイントが正しくない場合は、構成されたキャッシュ・ホストまたはポートを更新します。
- キャッシュ・サーバーが構成済ポートでTLSをリスニングしていない場合は、環境にプレーン・テキスト・キャッシュ・トラフィックが許容される場合、リスナー構成を修正するか、ゲートウェイ構成でTLSを無効にします。
- 証明書チェーンが期限切れ、不完全または信頼できない場合は、証明書チェーンまたは信頼構成を更新します。
- キャッシュ資格証明が正しくない場合は、参照されるシークレット・バージョンを正しいユーザー名とパスワードで更新してください。
- ネットワーク・パスがブロックされている場合は、ゲートウェイ・サブネットとキャッシュ・エンドポイント間のトラフィックを制御するルート・ルール、NSGルール、セキュリティ・リスト・ルール、ファイアウォールまたはプロキシ構成を更新します。
レスポンス・キャッシュの検証
構成を更新した後、レスポンス・キャッシュが期待どおりに機能することを確認します。
- レスポンス・キャッシングを使用するリクエストを再試行してください。
- キャッシュTLSハンドシェイクの失敗が実行ログに表示されなくなったことを確認します。
- APIゲートウェイがリクエスト・パスのレスポンス・キャッシュ・ヘルスの問題を報告しなくなったことを確認します。
詳細情報
詳細は、次を参照してください: