首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >证书验证自签名证书失败

证书验证自签名证书失败
EN

Security用户
提问于 2018-08-16 19:53:02
回答 2查看 8.6K关注 0票数 2

我正在尝试使用一个使用自签名证书的服务。

  1. 下载证书:# printf退出openssl s_client -connect my-server.net:443 -showcerts 2>/dev/null > my-server.net.crt
  2. 检查它的自签名(颁发者和主题相同):# openssl x509 -subject -issuer -noout -in my-server.net.crt subject=O = Acme Co,CN = Controller伪造证书issuer=O = Acme Co,CN = Controller伪造证书。
  3. 尝试将它与curl的--cacert选项一起使用:# curl https://my-server.net --解决我的-server.net.crtcurl:(60) SSL证书问题:无法获得本地颁发者证书的更多详细信息:https://curl.haxx.se/docs/sslcerts.html curl无法验证服务器的合法性,因此无法建立到服务器的安全连接。要了解更多关于这种情况和如何解决的问题,请访问上面提到的网页。

我不明白为什么卷发不能验证证书。

EN

回答 2

Security用户

回答已采纳

发布于 2018-08-17 03:56:05

从评论中:

这真的是CA证书吗,也就是说它基本约束CA真吗?.- Steffen Ullrich @SteffenUllrich你说得对

对证书进行签名要求颁发者证书必须具有正确的标志,以便实际允许签名。要正确签署证书,颁发者证书需要将基本约束CA设置为true。无论是在签署另一个证书时,还是在签署同一证书(即自签名)时,都是如此。在这里,看起来证书没有正确的CA:true标志。

此外,--cacert选项类似于它的名称只表示CA证书,而不是任意证书。例如,如果您拥有一个站点的叶证书,您就不能直接添加它,因为它(通常)不是CA证书,因此与--cacert一样受信任。在从给定文件中读取证书时,它将被忽略。

票数 3
EN

Security用户

发布于 2018-08-16 19:59:56

两种猜测:

1.是否允许进行服务器身份验证?

检查自签名证书的扩展/增强密钥使用字段。

2.服务器的主机名是否出现在CN或SAN字段中?

Curl将检查服务器返回的证书是否与您请求的主机名(my-server.net)匹配。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/191712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档