我正在尝试在我的一台服务器上测试 SSL 连接。服务器位于 LB 后面,因此它正在侦听端口 8090 上的 SSL 连接。
--resolve在与侦听端口 443 的 LB 通话时,我使用该选项进行测试。
curl --resolve 'myservice.com:443:1.1.1.1' 'https://myservice.com'
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时:
curl --resolve 'myservice.com:8090:2.2.2.2' 'https://myservice.com:8090'
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
如何强制 curl 使用端口 8090 进行 SSL 连接?
谢谢。
如果--resolve不起作用,您可以指定主机标头(您可能需要使用 抑制证书警告-k):
curl -k -H 'Host: myservice.com' 'https://2.2.2.2:8090'
Run Code Online (Sandbox Code Playgroud)
或者使用更详细的术语:
curl --insecure --header 'Host: myservice.com' 'https://2.2.2.2:8090'
Run Code Online (Sandbox Code Playgroud)
使用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和非标准端口工作在两个地方都指定了。
| 归档时间: |
|
| 查看次数: |
67133 次 |
| 最近记录: |