Назад | Перейти на главную страницу

Curl с SSL не работает на сервере Ubuntu

Когда я пытаюсь скрутить SSL-страницу на моем TLS-сервере ubuntu 12.04, это не сработает:

не ssl-страница:

$ curl https://evernote.com/ -vv
[the entire webpage]

ssl-страница:

$ curl https://evernote.com/ -vv
* About to connect() to evernote.com port 443 (#0)
*   Trying 204.154.94.73... connected
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* Unknown SSL protocol error in connection to evernote.com:443 
* Closing connection #0
curl: (35) Unknown SSL protocol error in connection to evernote.com:443 

Это работает на моей собственной машине (OS X).

Когда я пробую через openSSL:

$ openssl s_client -connect evernote.com:433
connect: Connection timed out
connect:errno=110

версия openSSL:

$ openssl version
OpenSSL 1.0.1c 10 May 2012

Похоже, у вас есть опечатка.

$ openssl s_client -connect evernote.com:433

Порт 433 не открыт на удаленном хосте, поэтому вы получили ошибку 110 (в соединении отказано).

Попробуйте вместо этого использовать порт 443 (стандартный порт HTTPS).


Что касается curl, я могу воспроизвести проблему при использовании evernote.com, но www.evernote.com работает правильно (хотя он отправляет 302 редирект на https://evernote.com/.

$ curl https://evernote.com/ -vv
* About to connect() to evernote.com port 443 (#0)
*   Trying 204.154.94.73...
* connected
* Connected to evernote.com (204.154.94.73) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* NSS error -5938 (PR_END_OF_FILE_ERROR)
* Encountered end of file
* Closing connection #0
curl: (35) Encountered end of file

Это означает, что сервер прервал соединение. По какой-то причине он действительно не хочет с нами разговаривать.

Вероятно, это не то, что вы можете исправить.

Была очень похожая проблема - возникла проблема при согласовании протокола, которая, вероятно, привела к некоторому недопониманию с поставщиком криптографии (библиотеки OpenSSL). Попробуйте явно установить безопасный протокол, например:

curl --sslv3 # OR
curl --sslv2 # OR
curl --tlsv1