Ssl

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

  • September 22, 2021

我正在嘗試在我的一台伺服器上測試 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 連接?

謝謝。

使用 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 和非標準埠按預期工作在這兩個地方都指定。

如果--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'

引用自:https://serverfault.com/questions/542825