Loading... 问题起因 在访问https的网站时,报出Peer's Certificate has expired的错误。如下: [root@localhost ~]# curl https://www.baidu.com curl: (60) Peer's Certificate has expired. More details here: http://curl.haxx.se/docs/sslcerts.html 搜索了很久,没有有用的信息。没能找到已有的解决方法。只能靠自己来分析了。 尝试分析 首先根据提示,我判断是CA证书过期。于是对证书进行了更新 update-ca-trust 但是依然没有解决问题。之后,尝试了很多方法后,重新回来想想,为什么不适用curl -v来获取更多信息呢?于是使用该命令进行再次尝试。 [root@localhost ~]# curl https://www.baidu.com -v * About to connect() to www.baidu.com port 443 (#0) * Trying 180.97.33.107... * Connected to www.baidu.com (180.97.33.107) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * Server certificate: * subject: CN=baidu.com,OU=service operation department,O="Beijing Baidu Netcom Science Technology Co., Ltd.",L=Beijing,ST=Beijing,C=CN * start date: Sep 17 00:00:00 2015 GMT * expire date: Aug 31 23:59:59 2016 GMT * common name: baidu.com * issuer: CN=VeriSign Class 3 International Server CA - G3,OU=Terms of use at https://www.verisign.com/rpa (c)10,OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US * NSS error -8181 (SEC_ERROR_EXPIRED_CERTIFICATE) * Peer's Certificate has expired. * Closing connection 0 curl: (60) Peer's Certificate has expired. More details here: http://curl.haxx.se/docs/sslcerts.html 然后根据SEC_ERROR_EXPIRED_CERTIFICATE的错误说明,进行搜索,发现该命令是由于本地的时间不正确造成的。进行一次ntp时间同步,问题解决。 ntpdate pool.ntp.org 结果分析 https的证书是有开始时间和失效时间的。因此本地时间要在这个证书的有效时间内。不过最好的方式,还是能够把时间进行同步。 Linux 重启之后时间重置的解决办法 最近将应用部署到测试环境上之后,由于经常断电,应用服务器也经常重启,重启之后发现与核心同步时总是报错,检查了一下原来是重启之后时间被还原了。需要用命令将正确的时间写入BIOS,否则下次重启还是会还原 写入时间 date -s 12/20/2003 date -s 12:30:00 写入到BIOS clock -w # 有些系统是 hwclock --systohc 总之是hwclock命令 显示bios时间 hwclock -r ———————————————— 版权声明:本文为CSDN博主「weixin_39528525」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_39528525/article/details/111509463 https://blog.csdn.net/weixin_42666807/article/details/116580831 同步时间方式 最后修改:2022 年 07 月 23 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏