自从网站上线一来一直有零星的用户反馈说网站证书无效,但是我访问的时候一直是有效的啊,当时以为是用户自己浏览器问题没有上心,今天又看到用户反馈说证书问题了
于是发现问题不简单,接着去相关检测网站检测了一下,评级为 b ,里面有一条重点是“证书链不完整”,( https://blog.myssl.com/faq-miss-ca-certificate/)
现代的浏览器都有证书自动下载的功能,但很多浏览器在安装后是使用系统内置的证书库,如果你缺失的那张 CA 证书,在系统的内置证书库中不存在的话,用户第一次访问网站时会显示证书无效
但是奇怪的是我用了相同的证书在 nginx 上部署了接口,接口的证书检测是完全没问题的,那么问题只能出现在阿里云上传证书这里了,于是开了工单问阿里云客服,没等对方回答,网上找到了一篇文章,结合分析,自己的 nginx 配置的是 fullchain.pem ,而阿里云 cnd 上传的时候配置的是 cert.pem ,难怪出现不完整证书链了。
隐约记得当时上传阿里云证书的时候,不知道哪看的教程,就是用的 cert.pem ,然后 privkey.pem 还不能用,需要转一下 openssl rsa -in privkey.pem -out new_privkey.pem
我一直以为就应该这样配置,也就出现了上面的问题,但是实际上直接用 fullchain.pem 和 privkey.pem 即可,没任何问题,再次检测果然没这个问题了。
调整后的评级
总结一下,主要原因还是缺乏对证书的理解才会出现这种低级问题。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.