コマンドラインcurlでSSLポートを指定する方法は?


9

サーバーの1つでSSL接続をテストしようとしています。サーバーはLBの背後にあるため、ポート8090でSSL接続を待機しています。

--resolveポート443でリッスンするLBと通信するときにテストするオプションを使用しています。

curl --resolve 'myservice.com:443:1.1.1.1' 'https://myservice.com'

しかし私がするとき:

curl --resolve 'myservice.com:8090:2.2.2.2' 'https://myservice.com:8090'

curlは単にポートを無視して443を使用します。もちろん、これによりDNSキャッシュが失われ、最終的にパブリックDNS IPを使用してしまいます...

* Added myservice.com:8090:2.2.2.2 to DNS cache
* About to connect() to myservice.com port 443 (#0)
*   Trying 3.3.3.3...
* Connected to myservice.com (3.3.3.3) port 443 (#0)

curlがSSL接続にポート8090を使用するように強制するにはどうすればよいですか?

ありがとう。


1
奇妙な... curl 7.22.0(x86_64-pc-linux-gnu)libcurl / 7.22.0 OpenSSL / 1.0.1 zlib / 1.2.3.4 libidn / 1.23 librtmp / 2.3
Michael-sqlbot

興味深いことに、カールをアップグレードするつもりです。前回7.29DEVバージョンをインストールしたようです(それが問題である可能性があります)。テストをありがとう。
Nicolas GUILLAUME 2013年

問題は修正されました。実際には、ヘッダーをドロップしていたcurlリクエストの作成に使用したツールからのものでした...お時間をいただき、ありがとうございます。私がそれを受け入れることができるように返信を投稿してください:)
Nicolas GUILLAUME 2013年

おかげで、あまり答えのようには感じられませんでしたが、少なくとも、問題を見つけるために別の場所を探しました。
マイケル-sqlbot 2013年

回答:


1

curl 7.22.0(x86_64-pc-linux-gnu)libcurl / 7.22.0 OpenSSL / 1.0.1 zlib / 1.2.3.4 libidn / 1.23 librtmp / 2.3でテスト--resolveされ、ヘッダーはhttpsおよび非標準ポートで期待どおりに機能します両方で指定されています。


3

--resolveが機能しない場合は、Hostヘッダーを指定できます(で証明書の警告を抑制する必要がある場合があります-k)。

curl -k -H 'Host: myservice.com' 'https://2.2.2.2:8090'

またはより冗長な用語:

curl --insecure --header 'Host: myservice.com' 'https://2.2.2.2:8090'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.