如何使用命令行curl指定SSL端口?


10

我正在尝试在我的一台服务器上测试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将端口8090用于SSL连接?

谢谢。


1
奇怪......在卷曲7.22.0下(x86_64-PC-Linux的GNU)预期对我的作品的libcurl / 7.22.0的OpenSSL / 1.0.1的zlib /的libidn 1.2.3.4 / 1.23 librtmp / 2.3
迈克尔- sqlbot

有趣的是,我打算升级卷发,好像我上次安装了7.29DEV版本(可能是问题所在)。感谢您的测试。
Nicolas GUILLAUME 2013年

好了,问题已解决,它实际上来自于我用来构造curl请求的工具,该工具正在删除标头...谢谢您的时间。请发布回复,以便我可以接受:)
Nicolas GUILLAUME

谢谢,这似乎并没有很多答案,但至少它使您在不同的地方寻找问题的所在。
Michael-sqlbot

Answers:


2

使用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'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.