直接回答
certificate error は identity または trust chain で修正します。検証無効化は見える障害を傍受リスクに変えるだけです。
このガイドで解決できること
certificate verification、hostname mismatch、期限切れ、unknown CA を安全に修正する。
症状と影響範囲を確認する
TLS handshake が certificate verify failed、hostname mismatch、期限切れ、unknown issuer で失敗します。
browser・host では成功しても container、Node.js、Python、企業 network では trust store の違いで失敗します。
- 設定を変更する前に、ステータスまたは例外、レスポンス本文、request ID、UTC 時刻、クライアント版、最終ホストを保存します。
- 最小リクエストと失敗するワークフローを比較し、全体障害、モデル固有、機能固有のどれかを切り分けます。
- 認証情報、完全なプロンプト、顧客データ、非公開ファイルをスクリーンショットやサポート資料に含めません。
主な原因と責任境界
エラーは一つのレイヤーから得た証拠であり、下流全体の故障を証明するものではありません。まず次の可能性を順に検証します。
- 要求 hostname が certificate SAN に含まれない。
- leaf certificate が期限外、または必要な intermediate chain が配信されていない。
- host または container の system time が誤っている。
- runtime trust store に CA がなく、または intercept proxy が別 chain を提示している。
レイヤー別に最小診断を行う
可変要素が最も少ないリクエストから開始します。アカウント、API ホスト、対象モデルは維持し、任意機能だけを外します。
一度に一項目だけ変更し、元のステータス、ヘッダー、本文、所要時間を残します。これによりクライアントのシリアライズとゲートウェイ・上流の挙動を分離できます。
- 01境界を確定host と container の UTC time・NTP を確認します。
- 02基準を作成IP や内部 alias ではなく正式な hostname へ接続します。
- 03一項目を比較API key を送らず issuer、SAN、有効期間、完全な chain を確認します。
- 04決定的な証拠を記録system、browser、Node.js、Python、container の CA store を比較します。
HOST='<your-api-host>'
date -u
openssl s_client -connect "$HOST:443" -servername "$HOST" -showcerts </dev/null 2>/tmp/tls-debug.txt | openssl x509 -noout -subject -issuer -dates -ext subjectAltName
tail -n 5 /tmp/tls-debug.txt確認した根本原因に修正を適用する
証拠で確定したレイヤーだけを最小限変更します。決定的な設定エラーを広範な再試行や検証無効化で隠さないでください。
- 01障害レイヤーを修正対象 hostname の有効な certificate と完全な intermediate chain を配信します。
- 02必要な動作を復元承認済み組織 CA だけを対象の managed trust store に導入します。
- 03一時回避策を除去hostname と certificate 検証を保ったまま DNS・proxy route を修正します。
一度の成功ではなく修正結果を検証する
最小確認が成功したら元の経路を再実行し、通常のストリーミング、同時実行数、タイムアウト条件でも安定することを確認します。
- leaf と intermediate が承認 trust anchor まで検証できる。
- request hostname が certificate SAN に存在する。
- browser、CLI、application runtime、container が安全に接続する。
- insecure flag や TLS 検証無効化が config・CI に残らない。
セキュリティ境界とエスカレーション資料
認証、通信、権限、検証を弱めず、かつ機密情報を公開しない範囲で、再現とエスカレーションに必要な証拠を収集します。
- production 対応として insecure mode や全体の certificate verification 無効化を使わない。
- certificate 調査中に credential を送信しない。
- 予期しない issuer を傍受境界の可能性として扱う。
- hostname、issuer、SAN、有効期間、chain 結果、runtime version で共有する。
公式情報と検証範囲
本ガイドはプロトコル仕様とクライアント公式文書を根拠にしています。エラー文、再試行ヘッダー、設定項目はサービスやバージョンで変わるため、参照元を確認し、ログとリクエスト例を秘匿してから共有してください。
技術検証方法を見る