Почему один завиток может сделать https, а другой не может - PullRequest
0 голосов
/ 07 июня 2018

Я выполнил запрос curl: curl https://login:password@mywebsite.com/script/

У меня есть несколько исполняемых файлов curl, один из которых установлен с помощью cygwin:

1:

curl 7.59.0 (x86_64-unknown-cygwin) libcurl/7.59.0 OpenSSL/1.0.2o zlib/1.2.11 libidn2/2.0.4 libpsl/0.18.0 (+libidn2/2.0.2) libssh2/1.7.0 nghttp2/1.31.0
Release-Date: 2018-03-14
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS Debug IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL Metalink

два других, которыеЯ скомпилировал:

2 - libcurl-vc14-x86-release-static-ipv6-sspi-winssl:

curl 7.60.0 (i386-pc-win32) libcurl/7.60.0 OpenSSL/1.0.2k WinIDN
Release-Date: 2018-05-16
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL HTTPS-proxy

3 - libcurl-vc14-x86-release-static-ssl-static-ipv6-sspi:

curl 7.60.0 (i386-pc-win32) libcurl/7.60.0 WinSSL WinIDN
Release-Date: 2018-05-16
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL

1 + 3 может выполнить этот «запрос TSL», 2 возвращает сообщение об ошибке:

curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

Все советы, которые я нашел по этой проблеме, -Вы должны получить файл сертификата с сервера и сохранить его в локальном хранилище (или указать curl, чтобы игнорировать ошибку).

Мой вопрос - почему это предлагаемый ответ, когда 1 + 3 может сделать это без этого?В чем разница?И что общего между 1 + 3, что они могут делать то, что 2 не могут?

1 Ответ

0 голосов
/ 08 июня 2018

Потому что ...

cygwin, вероятно, уже имеет локальное хранилище CA как часть своей основной установки.Он используется большим количеством инструментов, чем просто curl.

curl, созданный с помощью бэкенда «WinSSL», автоматически использует хранилище CA, которое ваша установка Windows связывает с операционной системой.

Ваша пользовательская сборка с использованиемOpenSSL требуется хранилище CA для проверки сертификата удаленного сервера по ...

...