Bagaimana cara menentukan port SSL dengan curl baris perintah?

9

Saya mencoba menguji koneksi SSL di salah satu server saya. Server berada di belakang LB sehingga mendengarkan koneksi SSL pada port 8090.

Saya telah menggunakan --resolveopsi untuk menguji ketika berbicara dengan LB yang mendengarkan pada port 443.

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

tetapi ketika saya melakukannya:

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

ikal hanya mengabaikan port dan berjalan dengan 443. Tentu saja, ini menyebabkan cache DNS ketinggalan dan saya akhirnya menggunakan IP DNS publik ...

* 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)

Bagaimana saya bisa memaksa curl untuk menggunakan port 8090 untuk koneksi SSL?

Terima kasih.

Nicolas GUILLAUME
sumber
1
Aneh ... berfungsi seperti yang diharapkan untuk saya di 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
Menarik saya akan memutakhirkan ikal saya sepertinya saya menginstal versi 7.29DEV terakhir kali (yang mungkin menjadi masalah). Terima kasih telah menguji.
Nicolas GUILLAUME
Baiklah masalah sudah diperbaiki, itu sebenarnya berasal dari alat yang saya gunakan untuk membangun permintaan ikal yang menjatuhkan header ... Terima kasih atas waktu Anda. Silakan kirim balasan agar saya dapat menerimanya :)
Nicolas GUILLAUME
Terima kasih, itu tidak terasa seperti jawaban tetapi setidaknya membuat Anda mencari di tempat yang berbeda untuk menemukan masalah Anda.
Michael - sqlbot

Jawaban:

1

Diuji dengan 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, --resolveheader berfungsi seperti yang diharapkan dengan https dan port non-standar ditentukan di kedua tempat.

Michael - sqlbot
sumber
3

Jika --resolvetidak berhasil, Anda dapat menentukan header Host (Anda mungkin perlu menekan peringatan sertifikat dengan -k):

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

atau dengan lebih banyak istilah verbose:

curl --insecure --header 'Host: myservice.com' 'https://2.2.2.2:8090'
Mathias R. Jessen
sumber