0

HTTPS 経由でサービスにアクセスしようとしていますが、ネットワーク設定が制限されているため、ssh トンネル経由でリクエストを送信しようとしています。

次のようなコマンドでトンネルを作成します。

ssh -L 9443:my-service.com:443 sdt-jump-server

このサービスは HTTPS 経由でのみ利用でき、自己署名証明書でホストされ、ホスト名または明示的な Host ヘッダーのいずれかを使用して着信要求を適切なバックエンド サービスにルーティングするロード バランサーの背後にあります。

curl のようなものを使用して、ローカル システムからエンドポイントを呼び出すことができます

curl -k -H 'ホスト: my-service.com' https://localhost:9443/path

しかし、JAX-RS の CXF 3.1.4 実装を使用してまったく同じ要求を作成しようとすると、うまくいかないようです。接続を許可するように hostnameVerifier を構成し、サーバーの証明書をダウンロードして、トラストストアに追加しました。接続できるようになりましたが、設定しようとしている Host ヘッダーをロードバランサーが認識していないようでした。

-Djavax.net.debug設定して、渡された Host ヘッダーが実際には設定した値ではなく、設定した値であることがわかるまで、少し迷いましたlocalhost。WebTarget の URL の値を使用する代わりに、CXF が設定している Host ヘッダーを尊重するようにする方法は?!

4

1 に答える 1