証明書エラーとは何か?
Scrapeless Proxies は、セキュアな宛先接続の検証についての責任をクライアント側に保持したまま、リクエストのルーティングを提供します。
証明書エラーとは、クライアントが自身のセキュリティポリシーの下で証明書またはその主張されているアイデンティティを検証できなかったことを意味します。HTTPS の場合、一般的なチェックには、要求されたホスト名、証明書の有効期間、発行者チェーン、および信頼されたルートが含まれます。このエラーは認証失敗の証拠であり、ソースコンテンツを受け入れる前に調査する必要があります。
TL;DR
- 証明書検証は、単に暗号化されたバイトが流せるかどうかを確認するのではなく、セキュアなエンドポイントを認証します。
- ホスト名アイデンティティ、有効期間、チェーン構成、信頼ポリシーは、それぞれチェック内容も対処方法も異なります。
- ブラウザとコマンドラインクライアントが食い違うのは、それぞれの実効的な信頼ストアやネットワーク経路が異なるためです。
- プロキシ経路は、宛先証明書を自動的に修正したり、未知の発行者を信頼できるものにしたりはしません。
証明書エラーはエンドポイント認証に関わる
証明書エラーは、クライアントが意図されたセキュア接続に対する証明書の有効性を確立できなかったことを示します。接続はサーバーに到達して TLS を開始することはあっても、そのサーバーを信頼するために必要なアイデンティティチェックに失敗する場合があります。ネットワーク到達性と認証は別個の観測結果です。
「 TLS サービスアイデンティティ規則 」は、要求されたサービス名と、ピアによって提示される証明書アイデンティティを結び付けます。証明書はその他の点では有効でも、要求したホスト名に対しては失敗することがあります。別の経路で取得した証明書のスクリーンショットではなく、実際の URL のホスト名と、その接続で提示されるアイデンティティを確認してください。
「 X.509 証明書パス検証モデル 」は、有効性と信頼チェーンの要件を扱います。証明書の発行者テキストだけでは信頼は確立されません。クライアントは、自身の信頼ポリシーに合致したチェーンと、必要な証明書チェックを満たす必要があります。すべての証明書問題を有効期限切れとして説明するのではなく、失敗した検証カテゴリを記録してください。
コレクターにとって、その結果は明確です。証明書エラーとは、セキュアなアイデンティティ要件が満たされていないことを意味します。ソースデータが得られないことは取得失敗であり、製品が削除されたり記事が空であったりする証拠ではありません。コンテンツを受け入れずに、宛先と検証カテゴリを保持してください。
証明書を交換する前にホスト名アイデンティティを診断する
ホスト名の不一致とは、その証明書が要求されたサービスに必要なアイデンティティを確立していないことを意味します。クライアントが使用した正確なホスト名から確認を始めてください。タイプミス、想定外のリダイレクト先、IP アドレスの URL などにより、基盤となるサーバーが同じでも確認対象のアイデンティティが変わることがあります。
共有ホスティングやエッジ展開では、想定されるサーバー名に応じて異なる証明書を提供することがあります。運用者が期待されるホスト名の文脈なしにアドレスだけを確認すると、観測される証明書はデフォルトのバーチャルホストに属している可能性があります。アプリケーションの実際の接続を、意図されたサービス構成と比較してください。
自社で管理しているサイトの場合は、証明書がパブリックホスト名をカバーしており、そのリクエストを受けるエッジまたはリスナーにデプロイされていることを確認してください。未使用サーバー上の正しい証明書は、実際に使用されている経路には役立ちません。ホスト名やインフラを移行した後は、関係するすべての終端境界を確認してください。
サードパーティサイトの場合は、URL を検証し、不一致のカテゴリをサイト所有者に伝えてください。サービスの正式なアドレスでない限り、検証を回避することだけを目的として別のホスト名を代用してはいけません。取得処理では、実際に取得しようとしているリソースアイデンティティを保持すべきです。
有効期間は証明書とクライアント時刻の両方に依存する
有効性エラーは、有効期限切れの証明書、まだ有効期間が開始していない証明書、または誤った時計設定で日付を評価しているクライアントに関する場合があります。どちら側を修正すべきか判断する前に、信頼できる診断方法で有効期間とクライアント時刻を記録してください。
自社サービスの場合は、現在配信されている証明書と、デプロイされるはずだった更新済み証明書を比較してください。更新とデプロイは別の作業です。証明書は管理システム内に存在していても、エッジノードやリバースプロキシが依然として別の証明書を配信していることがあります。更新通知だけに頼らず、実際のリスナーを確認してください。
あるクライアントは日付の問題を報告するのに、他のクライアントは同じエンドポイントを受け入れている場合、そのクライアントの時刻設定と実際の経路を確認してください。クライアントが同じ証明書を受け取っていない可能性があります。企業のインスペクション経路や異なるエッジアドレスによって、別のセキュアエンドポイントが挿入されることがあるため、時計だけでなく証明書アイデンティティも比較してください。
恒久的な回避策として有効性チェックをオフにしないでください。証拠が示す側のクライアント時刻または配信証明書を修正してください。そのうえで、元の必須経路を通じて元のホスト名を検証し直します。修正後の結果は、接続を拒否したのと同じ検証ポリシーを満たす必要があります。
チェーン構成と信頼ストアの差異
チェーンエラーとは、クライアントが自身の信頼ポリシーに必要な証明書パスを構成できない、または受け入れられないことを意味します。配信されている中間証明書、発行階層、クライアントの信頼されたルートを調査してください。ブラウザがサイトを受け入れているからといって、別個にパッケージされたランタイムが同じ信頼情報を持つことにはなりません。
curl の証明書検証動作 クライアントの信頼構成がどのように安全なリクエストに影響するかを示しています。異なるビルドや環境では、異なる証明書ソースを使用できます。そのため、コンテナイメージ、サーバーランタイム、ワークステーションのブラウザが、同じ提供チェーンを異なって評価する場合があります。
管理しているパブリックエンドポイントについては、サーバーのドキュメント化された設定で、適切な証明書チェーンを提供してください。すべてのクライアントが同じ方法で不足している中間証明書を検出すると想定しないでください。アプリケーションにとって重要なサポート対象クライアント環境で、稼働中のエンドポイントをテストしてください。
承認されたプライベートサービスについては、組織の文書化された信頼管理プロセスを通じて信頼情報を配布してください。エラーページからダウンロードした見慣れないルート証明書は、承認された信頼関係の証拠にはなりません。信頼ストアを変更する前に、発行者とデプロイの責任者を確認してください。
失効した証明書や、その他許可されていない証明書もポリシーチェックに失敗する可能性があります。クライアントの正確なメッセージと該当するポリシーを保持してください。失効や脆弱な証明書に対する制限は、中間証明書の欠如とは別物として扱ってください。なぜなら、その是正には同じチェーンを延長するのではなく、別の証明書を発行・デプロイすることが関わる場合があるからです。
証明書エラー、ハンドシェイク失敗、プロキシ失敗
証明書エラーは TLS のやり取りが失敗する理由のひとつですが、すべてのハンドシェイク失敗が証明書に関係するわけではありません。クライアントは、証明書情報を受信する前にプロトコルネゴシエーションに失敗することがあります。ターゲットの TLS 通信が開始される前に、プロキシトンネルが失敗することもあります。
| 観測内容 | 意味 | 次に確認すべき証拠 |
|---|---|---|
| ホスト名の不一致 | 提示されたアイデンティティが、要求されたサービスと一致していない | URL のホスト名と配信された証明書のアイデンティティ |
| 有効性の失敗 | 証明書の日付がクライアントのチェックを満たさない | 提供された有効期間と信頼されているクライアント時刻 |
| チェーンまたは信頼の失敗 | クライアントが発行者パスを受け入れられない | 中間証明書と有効な信頼ストア |
| それ以前のトンネルまたは TLS 失敗 | 証明書検証に到達していない可能性がある | 最後に完了した接続段階 |
この区別が、次に行うべき診断ステップの方向性を決めます。クライアントがプロキシトンネルを確立できていない場合は、まずそのやり取りを調査してください。ホスト名や発行者を理由に TLS 交渉が十分進んだ段階で拒否された場合は、その検証結果を保存してください。サーバーが証明書を提示しなかった場合は、さらなる証拠なしに特定の証明書の欠陥を報告しないでください。
最上位レベルのエラーメッセージの文言はクライアントによって異なります。生のクライアントエラーと並行して、正規化された証明書検証カテゴリを保持してください。これにより、運用チームは、ツールが実際に示した詳細な理由を失うことなく、ツール間で障害を比較できるようになります。
プロキシルーティングが証拠をどう変えるか
プロキシルートは、ターゲットの検証を必須のままにして、異なるネットワークパスを露出させることがあります。通常のトンネルはターゲットの暗号化通信を転送しますが、承認された検査ゲートウェイは、安全な通信を終了させて再作成します。証明書を比較する前に、どちらのモデルがそのルートに適用されているかを特定してください。
管理された社内ルートが組織発行の証明書を提示する場合、クライアントの信頼構成は、承認された検査デプロイメントと一致していなければなりません。想定外の発行者が特定のネットワークでのみ現れる場合、それを盲目的に受け入れるのではなく、そのネットワーク境界を調査してください。このアイデンティティの違いは保存すべき証拠です。
現在の Scrapeless proxy authentication and endpoint configuration はルーティングおよびチャネルアクセスに関係します。これは、任意の宛先証明書をクライアントに信頼させるよう指示するものではありません。クライアントがサポートする安全なエンドポイントチェックを維持しながら、 Scrapeless proxy network を転送手段として使用してください。
「 TLS inspection and proxy tunneling comparison 」は、この区別を理解するのに有用な背景情報を提供します。ルーティング要件に照らして current Scrapeless proxy plans を確認し、それを証明書修復案として扱わないでください。別のプロキシを購入しても、有効期限切れやホスト名の不一致のある証明書を、そのサービス名に対して正しいものにすることはできません。
診断用にエクスポートする場合は、障害を特定するのに必要な証明書および接続の詳細だけを保持してください。プライベートなリクエストデータ、Cookie、プロキシの秘密情報は削除してください。公開証明書は、その周囲の認証済みブラウジングセッション全体をエクスポートしなくても、有用な証拠になり得ます。
検証を外さずに信頼を復元する
証明書エラーを解消するとは、想定したエンドポイントがクライアントのアイデンティティおよび信頼ポリシーを満たすことを意味します。失敗したチェックの内容に応じて、ホスト名、有効な証明書デプロイメント、チェーン、時計、または承認された信頼構成を修正してください。
その後、必要なルートを通じて元のリソースを検証してください。検証を有効にした状態で成功した暗号化接続が、関連する結果です。検証を無効にした後に受け入れられたリクエストは、その認証上の欠陥が修復されたことを示すものではありません。
より観測可能な Web データワークフローを構築する
Scrapeless Proxies を経由してクライアントをルーティングしつつ、宛先のアイデンティティチェックを維持し、証明書の障害を個別に記録してください。
今すぐ登録して $5 in free credit — クレジットカードは不要です.
$5 クレジットを受け取る →FAQ
Q: 証明書エラーは DNS 障害と同じですか?
証明書エラーは DNS 障害とは異なります。DNS は名前情報の取得に関するものであり、証明書エラーは安全なエンドポイントのアイデンティティまたは信頼に関するものです。問題が別々に調査されるように、接続段階と生のエラーを保持してください。
Q: 証明書は有効でも、ホスト名に対して誤っている場合はありますか?
証明書は、発行者チェーンおよび有効期限の範囲内では有効であっても、要求されたホスト名に対しては失敗することがあります。URL に記載された実際のサービス ID を、その接続で提示された証明書と照合してください。別のホスト名に対して正しい証明書であっても、このエンドポイントの身元を証明することにはなりません。
Q: なぜブラウザは動作するのに、HTTP クライアントは証明書を拒否するのですか?
ブラウザが動作する一方で HTTP クライアントが証明書を拒否するのは、それぞれの信頼ソース、配信されるパス、または有効な検証ポリシーが異なるためです。各々が受け取る証明書と、実際に使用している信頼ストアを比較してください。クライアントが検証を無効にすべきだと決めつけないでください。
Q: プロキシを使えば、有効期限切れの証明書は直りますか?
プロキシを使用しても、有効期限切れの証明書が有効になることはありません。経路変更によって、どのエンドポイントまたは中継が観測されるかは変わり得るため、実際の経路を確認してください。適切な対処は、確認された問題が証明書デプロイかクライアントの時刻にある場合、それらを修正することです。