关于,ssl验证

关于,ssl验证

CURLOPT_SSL_VERIFYHOST  和  CURLOPT_SSL_VERIFYPEER

开启这两个是指,客户端对服务器验证吧,为什么这两个设为true,就提示我没有证书。

浏览器的证书又是谁授予的?


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
guly 2019-12-18 17:20:29

你好,默认curl被设为不信任任何CA证书,就是不信任任何服务器的验证,因此,浏览器无法通过HTTPS访问你的服务器,而报curl(60) 无法获得本地颁发者证书的错误。

如果解决您的问题请采纳,祝学习愉快!

guly 2019-12-18 09:24:28

你好,这时 SSL 服务器与客户端之间的通信配置为双向 SSL 认证,这种情况要求服务器和用户双方都有证书,此时的本地证书是指客户端本身的证书,具体详情建议参考:

https://www.cnblogs.com/cposture/p/9029014.html

  • 提问者 倾城丶空子许 #1
    这个报错已经解决了。像百度这种不可能是双向认证吧,不是只有金融机构等安全性高的网站才会配置双向认证么。
    2019-12-18 10:27:51
  • guly 回复 提问者 倾城丶空子许 #2
    你好,一般Web应用都是采用单向认证的,因为用户数目广泛,且无需做在通讯层做用户身份验证。
    2019-12-18 15:03:31
  • 提问者 倾城丶空子许 回复 guly #3
    所以,你前面回答说 ,这时服务器与客服端之间的通信配置为双向ssl认证,不是很奇怪么? 重新说一下我的问题:我测试的网址是百度,所以CURLOPT_SSL_VERIFYHOST设置为2,应该是检查百度的CN,为什么需要本地证书。不要告诉我,报错的解决方法了。我只是没想通这个逻辑。(是不是curl扩展,设置这个常量,就需要验证本地证书和https协议没有关系?)。
    2019-12-18 16:01:58
guly 2019-12-17 14:26:51

你好,默认curl被设为不信任任何CA证书,就是不信任任何服务器的验证,因此,浏览器无法通过HTTPS访问你的服务器,而报curl(60) 无法获得本地颁发者证书的错误。

如果解决您的问题请采纳,祝学习愉快!


  • 提问者 倾城丶空子许 #1
    1 开启这个是指服务器验证客户端的证书,还是客户端验证服务器的证书? 2 如果这个常量可以控制服务器是否验证客户端的证书,感觉不太现实呀,证书签发不就没意义了。 3 如果是客户端验证服务器证书,那为什么报错: string(63) "SSL certificate problem: unable to get local issuer certificate" 要我本地证书干嘛?
    2019-12-17 14:57:37
  • guly 回复 提问者 倾城丶空子许 #2
    你好,1、是检查服务器端证书 2、是检查证书中是否有CN(common name)字段, 报错:string(63) "SSL certificate problem: unable to get local issuer certificate"建议参考如下: https://www.cnblogs.com/syay/p/10870726.html
    2019-12-17 17:19:15
  • 提问者 倾城丶空子许 回复 guly #3
    我想知道为什么还要一个本地的证书,不是检查服务器的证书么。
    2019-12-17 17:45:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP典型功能与Laravel5框架开发
  • 参与学习           人
  • 解答问题       722    个

掌握开发中必备技能解锁缓存、支付,邮件和短信发送等高端接口运用,直击工作重难点,通过开发简书项目熟练掌握Laravel5的开发技术。完成以上三个阶段的学习,成为满足企业需求的开发工程师。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师