HTTP GET使用cURL给出SSL错误

5f0d552i  于 2023-10-19  发布在  其他
关注(0)|答案(3)|浏览(194)

我写了一个REST服务器,它监听端口8000。我尝试使用cURL命令从同一台机器调用API-

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选项绕过证书验证,但无济于事。我错过了什么?如果需要更多信息,请发表评论。

EDIT:我朋友建议在cURL命令中只使用http。然后它绕过了SSL检查,它工作了。HTTPS有什么问题?我需要安装本地主机的证书吗?为什么-k选项不起作用?

2vuwiymt

2vuwiymt1#

我的朋友建议在cURL命令中只使用http。然后它绕过了SSL检查,它工作了。
您的服务器似乎根本没有启用SSL。这就是为什么HTTP可以工作而HTTPS不能。使用HTTP不会绕过任何SSL检查,因为HTTP没有SSL,因此没有SSL检查可以绕过。
为什么-k选项不起作用?
-k选项用于跳过SSL(HTTPS)连接上的证书验证。但它只能在首先有SSL连接的情况下工作。由于您的服务器根本不支持SSL,因此-k将不会有帮助。
我需要安装本地主机的证书吗?
您需要首先在您的(未知)服务器上启用SSL。如果你自己的服务器编码,这意味着额外的编码。而且,一旦服务器可以执行SSL,您还需要设置服务器可以提供给客户端的证书。

7lrncoxx

7lrncoxx2#

在我的情况下,我必须检查我的vhost配置。我必须做的事情是为域定义一个特定的基于名称的vhost。
也许,有人只是想先进行一个快速测试,而不想配置vhost,那么他们就会遇到这个错误消息。

mqkwyuun

mqkwyuun3#

如果-k不工作,并且您希望从服务器获得原始响应,则可以尝试使用http而不是https并使用443端口
例如:

curl http://example.com:443

相关问题