HTTP アウトバウンド接続の確立方法
クライアントはまず server:port で指定したアップストリームプロキシへ接続し、続いて HTTP CONNECT リクエストを送信して対象ホストへの TCP トンネルを確立します。対象サイトが HTTP と HTTPS のどちらを使っていても、ここでのノード種別は変わりません。
type: http デフォルトではアップストリームプロキシへ平文で接続します。次を設定した場合に限り tls: true、クライアントからアップストリームプロキシまでの区間で TLS が使われます。HTTP アウトバウンド自体は UDP 転送に対応していません。
必須の最小フィールド
以下の四項目で、認証を必要としない最小構成の HTTP アウトバウンドになります。ノード名はポリシーグループやルールから参照されるため、ほかのノードと重複させないでください。
name必須- ノード名。後続の
proxy-groupsまたはルールで使用します。 type必須- 固定値
http。 server必須- アップストリーム HTTP プロキシのドメインまたは IP アドレスです。
port必須- アップストリームプロキシの待受ポートです。ポート番号だけでは TLS の有効・無効は決まりません。
認証と CONNECT リクエストヘッダー
アップストリームで Basic プロキシ認証が必要な場合は、ユーザー名とパスワードを両方指定します。headers CONNECT リクエストに追加されます。ゲートウェイの要件に応じて、デフォルトの Host、User-Agent、Proxy-Connection などのリクエストヘッダーを上書きできます。
username必要に応じて指定- アップストリームプロキシ認証のユーザー名です。現在の実装では、ユーザー名とパスワードがどちらも空でない場合にだけ Basic 認証を送信します。
password必要に応じて指定- と
usernameに対応するプロキシ認証パスワードです。 headers必要に応じて指定- キーと値で指定する CONNECT リクエストヘッダーです。対象サイトへの通常のリクエストヘッダーは、ここに設定しないでください。
HTTPS アップストリームと証明書の検証
TLS を有効にした場合、SNI、証明書名、証明書チェーンはいずれもアップストリームプロキシに対するもので、最終的な接続先サイトに対するものではありません。通常は証明書の検証を有効なままにしてください。
tls必要に応じて指定- 次の値に設定すると
true、TLS でアップストリーム HTTP プロキシへ接続します。 sni必要に応じて指定- TLS ハンドシェイクで使うサーバー名です。省略時は
server。 name-cert-verify必要に応じて指定- 証明書の DNSName 検証対象だけを個別に指定します。SNI は変更されません。
skip-cert-verify慎重に使用- 証明書の検証を省略します。リスクを十分理解したうえで、一時的なトラブルシューティングに限って使用してください。
fingerprint必要に応じて指定- 証明書全体の SHA-256 フィンガープリントです。ブラウザのクライアントフィンガープリントではありません。
certificate / private-key必要に応じて指定- ペアで指定すると mTLS が有効になります。PEM の内容または対応するファイルパスを指定できます。
認証付き HTTPS ノードの例
この例では、アップストリーム TLS と Basic 認証を同時に有効にしています。アップストリームで認証が不要な場合は、次を削除します: username と passwordアップストリームが平文の HTTP プロキシである場合は、次を削除します: tls と sni。
- TLS ハンドシェイクエラーが発生した場合は、まずアップストリームが実際に HTTPS プロキシサービスを提供しているか確認してください。
- 407 Proxy Authentication Required が発生した場合は、アカウント、パスワード、アップストリームで許可されている認証方式を確認してください。
- CONNECT method not allowed が発生した場合、アップストリームがフォワードプロキシではないか、CONNECT メソッドが許可されていない可能性があります。
proxies:
- name: http-upstream
type: http
server: proxy.example.com
port: 443
username: user
password: pass
tls: true
sni: proxy.example.com