HTTP GET с использованием cURL выдает ошибку SSL - PullRequest
0 голосов
/ 29 мая 2018

Я написал REST-сервер, который прослушивает порт 8000. Я пытаюсь вызвать API с той же машины с помощью команды cURL -

curl -H "accept: application/json" https://localhost:8000/status -v

Я получаю следующую ошибку

* About to connect() to localhost port 8000 (#0)
*   Trying ::1...
* Connected to localhost (::1) port 8000 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* NSS error -12263 (SSL_ERROR_RX_RECORD_TOO_LONG)
* SSL received a record that exceeded the maximum permissible length.
* Closing connection 0
curl: (35) SSL received a record that exceeded the maximum permissible length.

Я пытался обойти проверку сертификата с помощью опции -k, но безрезультатно.Что мне здесь не хватает?Пожалуйста, прокомментируйте, если требуется дополнительная информация.

РЕДАКТИРОВАТЬ : Мой друг предложил использовать только http в команде cURL.Затем он обошел проверку SSL и все заработало.Но что не так с https?Нужно ли устанавливать сертификат для localhost?Кроме того, почему не работает опция -k?

1 Ответ

0 голосов
/ 29 мая 2018

Мой друг предложил попробовать использовать только http в команде cURL.Затем он обошел проверку SSL и сработал.

Похоже, что на вашем сервере вообще не включена поддержка SSL.Вот почему HTTP работал, а HTTPS - нет.Использование HTTP не обошло никакую проверку SSL, потому что нет SSL с HTTP и, следовательно, нет проверки SSL для обхода.

Кроме того, почему не работает опция -k?

Параметр -k используется для пропуска проверки сертификата в соединениях SSL (HTTPS).Но это может работать только при наличии SSL-соединения.Поскольку ваш сервер вообще не поддерживает SSL, -k не поможет.

Нужно ли также устанавливать сертификат для localhost?

Сначала необходимо включить SSL на вашем (неизвестном) сервере.Если вы закодировали свой собственный сервер, то это означает дополнительное кодирование.И, когда сервер вообще может использовать SSL, вам также необходимо настроить сертификат, который сервер может предоставить клиенту.

...