首页 > 解决方案 > curl(60)ssl证书问题自签名证书localhost在windows

问题描述

我是新来的,所以请原谅我的提问方式。我通过如下 curl 命令访问了一个安全的 rest api。

curl -X GET -H 'Authorization: Bearer ${Token}' https://localhost/student-sevice/list-of-student

出现如下错误

Curl(60) SSL 证书问题:自签名证书。Curl 未能验证服务器的合法性,因此无法建立安全连接

标签: javarestcurljwt

解决方案


这是因为您的 localhost 服务器的 SSL 证书是自签名的(由自己签名),而不是由知名的认证机构 (CA) 签名。

这使得 curl(或任何 https 请求者,如 Chrome 等浏览器)无法保证证书值得推力,因为基本上该证书是在说:“相信我,我就是我所说的我”,但实际上没有任何东西支持这种肯定。这正是外部 CA 的作用:验证签名证书的身份是否真正来自声称的身份(https://en.m.wikipedia.org/wiki/Certificate_authority

您可以使用不安全的 -k 标志 ( https://linux.die.net/man/1/curl )绕过 curl CA 验证,如下所示:

curl -X GET -H 'Authorization: Bearer ${Token}' -k https://localhost/student-sevice/list-of-student 

不管怎样,我强烈建议您将服务器证书更改为由知名 CA 验证的证书,以避免进一步的问题。

另请参阅,重复:如何禁用 cURL SSL 证书验证


推荐阅读