我写了一个侦听端口8000的REST服务器。我正在尝试使用 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 选项绕过证书验证,但无济于事。我在这里错过了什么?如果需要更多信息,请发表评论。
编辑: 我的朋友建议在 cURL 命令中仅尝试使用 http。然后它绕过了SSL检查并工作了。但是https出了什么问题?我还需要为本地主机安装证书吗?另外,为什么 -k 选项不起作用?
我的朋友建议在 cURL 命令中仅尝试使用 http。然后它绕过了SSL检查并工作了。
看起来您的服务器根本没有启用SSL。这就是为什么HTTP有效而HTTPS无效的原因。使用HTTP没有绕过任何SSL检查,因为HTTP没有SSL,因此没有SSL检查可以绕过。
另外,为什么 -k 选项不起作用?
-k
选项用于跳过 SSL (HTTPS( 连接上的证书验证。但它只有在首先存在SSL连接的情况下才能工作。由于您的服务器根本不支持 SSL,因此-k
将无济于事。
我还需要为本地主机安装证书吗?
您需要首先在(未知(服务器上启用 SSL。如果您编写了自己的服务器,那么这意味着额外的编码。而且,一旦服务器可以执行SSL,您还需要设置服务器可以提供给客户端的证书。
就我而言,我必须检查我的虚拟配置。 我必须做的事情是为域定义一个特定的基于名称的虚拟主机。
也许,有人只是想先进行快速测试,不想配置虚拟主机,然后他们会遇到此错误消息。