Я не могу скачать curl https://www.sicdm.caixa.gov.br/cadmut/login_internet_form.do
на сервере CentOS 6.2.
Команда curl -v -k -3 https://www.sicdm.caixa.gov.br/cadmut/login_internet_form.do
дает:
* About to connect() to www.sicdm.caixa.gov.br port 443 (#0)
* Trying 200.201.173.93... connected
* Connected to www.sicdm.caixa.gov.br (200.201.173.93) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* warning: ignoring value of ssl.verifyhost
* skipping SSL peer certificate verification
* NSS error -5938
* Closing connection #0
* SSL connect error
curl: (35) SSL connect error
Что я пробовал до сих пор:
1) Выполните ту же самую команду curl на серверах, размещенных у других провайдеров, на моей машине linux dev и на машинах моих товарищей по команде: страница загружается нормально;
2) Google для NSS error -5938
, который не дал ни одного полезного совета.
3) Избавьтесь от curl и используйте wget: не будет работать, поскольку удаленный сервер использует Transfer-Encoding: chunked, с которым wget не играет.
4) Обновите / понизьте / скомпилируйте последнюю версию Curl, NSS и OpenSSL: проблема не устранена.
5) Сообщите о проблеме провайдеру сервера. Сначала они заявили, что проблема связана с сертификатом удаленного сервера; Я сомневаюсь, что это так, поскольку я сказал curl игнорировать проверку сертификата (флаг -k).
6) Извлеките tcpdump соединения, где обнаружены "забавные" вещи (верхний снимок):
Существует много ошибок передачи, и ответ сервера на фазу «Обмен ключами клиента» никогда не достигает нашего сервера, даже если это происходит с пакетом ACK! - обратите внимание на 30-секундный промежуток между пакетами 46 и 47 (это происходит, даже если брандмауэр отключен)
Для сравнения, керлинг PayPal (нижний захват) идет нормально.
7) Обратитесь к поставщику сервера, показывая результаты tcpdump. Они ничего не прокомментировали по поводу дампа, но сказали, что они пробовали команду на других серверах в своей сети, и команда не удалась таким же образом. Несмотря на это, они по-прежнему заявляют, что проблема заключается в плохом сертификате удаленного сервера и в том, как я с этим справляюсь.
Итак, что мне не хватает?
PS: вот несколько номеров версий:
curl -v
curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl / 7.19.7 NSS / 3.16.2.3 Базовый ECC zlib / 1.2.3 libidn / 1.18 libssh2 / 1.4.2 Протоколы: tftp ftp telnet dict ldap ldaps http файл https ftps scp sftp Возможности: GSS-согласование IDN IPv6 Largefile NTLM SSL libz
uname -a
Linux [отредактированное имя хоста] 2.6.32-220.23.1.el6.x86_64 # 1 SMP Понедельник, 18 июня 18:58:52 BST 2012 x86_64 x86_64 x86_64 GNU / Linux