SUPPORTING
「HTTPS対応」の意味を分解する:CONNECT・プロキシTLS・証明書差異の確認手順
「HTTPS対応」だけで判断せず、CONNECT、接続先TLS、条件付きのプロキシTLS、証明書差異を分けて確認するための実務手順を解説します。
「HTTPS対応」という表示だけでは、確認すべき接続方式を特定できません。HTTPプロキシへのCONNECTと、HTTPSプロキシ自体へのTLS接続を分け、さらに接続先証明書をプロキシなしの基準結果と比較して判断します。
CONNECTとプロキシTLSを分ける
HTTPプロキシをトンネルとして使うとき、クライアントはCONNECTリクエストで接続先のホストとポートを指定し、確立後の通信はプロキシを通過します。curl公式:HTTPプロキシトンネル
ただし、CONNECTを使うだけでクライアント―プロキシ間もTLSになるわけではありません。独立した「プロキシ証明書」が確認対象になるのは、HTTPSプロキシへTLS接続する構成の場合です。curlでは、その場合のプロキシTLSと接続先サーバーTLSが別々に処理・検証されます。curl公式:証明書検証
したがって、契約前には次を文書で確認します。
- 指定されるプロキシURLの方式はHTTPかHTTPSか
- HTTPSサイトへの到達にCONNECTを使うか
- 必要な宛先ポートでCONNECTできるか
- HTTPSプロキシの場合、証明書検証に専用CAが必要か
- 接続先証明書を置き換える運用があるか
プロキシはCONNECT可能なポートを制限する傾向があり、80番と443番だけを許可する場合が多いとcurlは説明しています。curl公式:HTTPプロキシトンネル
試用時は「基準結果」を先に保存する
最初にプロキシを使わず対象URLへ接続し、日時、接続先名、証明書の発行者、SAN、フィンガープリント、検証結果を保存します。次に同じ端末・同じ対象URLでプロキシ経由の結果を取り、項目ごとに比較します。これは証明書検証の成功だけに依存しないための運用手順です。
curlは既定で証明書を検証し、署名に加えて、証明書がURLで指定されたサーバー名向けかを確認します。curl公式:証明書検証 検証を有効にしたまま、次の表を埋めます。
| 確認対象 | 記録する内容 | 判断 |
|---|---|---|
| CONNECT | 要求したホスト・ポート、成否 | 用途に必要な接続が可能か |
| 接続先TLS | 発行者、SAN、フィンガープリント、検証結果 | プロキシなしの基準結果との差を調べる |
| プロキシTLS | HTTPSプロキシの場合のみ、プロキシ名、発行者、使用CA、検証結果 | 検証無効化なしで接続できるか |
接続先証明書に差異があっても、それだけで差し替えと断定せず、提供事業者へ理由と証明書処理の仕様を確認します。反対に、独自CAを信頼登録した状態で検証が成功したことだけを根拠に、接続先証明書が基準結果と同じだとも判断しません。回答、基準結果、プロキシ経由結果を一組で保存してください。
HTTPSプロキシには、接続先用とは別に--proxy-cacertと--proxy-insecureが用意されています。curl公式:証明書検証 専用CAを求められた場合は、入手元、配布対象、更新・失効時の対応を確認します。curlは開発目的でも検証のスキップを避け、本番では行わないよう強く推奨しています。curl公式:証明書検証
継続しない条件
必要なポートが使えない、恒常的な検証無効化が必要、証明書差異や独自CAについて説明が得られない場合は、その用途には向きません。HTTPSプロキシでは接続先TLSとプロキシTLSを個別に管理する手間もあります。一方、平文HTTPプロキシ経由のCONNECTでは独立したプロキシTLS証明書を確認する手順は対象外です。
「HTTPS対応」という名称ではなく、接続方式、検証を維持できるか、証明書差異を説明できるかを試用終了前の判断材料にしてください。