我找了几个小时的解决方案,但找不到任何。我正在使用letsencrypt ssl通过certbot。
我的域名是ektaz.com
当我在浏览器上检查证书时显示
Expires: 8 November 2021 Monday 16:24:33 GMT+03:00
当我用certbot certificates
从服务器端检查它时,我得到的结果为
Expiry Date: 2021-11-08 13:24:33+00:00 (VALID: 39 days)
但所有浏览器证书是无效的,我不明白为什么说。
我也用certbot renew
更新了这个证书很多次,到目前为止没有问题。我已经清除了所有缓存,尝试的结果是一样的。我多次重启apache。即使重启了服务器,也没有任何变化。
Server OS:Ubuntu 20.04 LTS
您的证书可能根本就不是无效的。
有一个简单的修复方法。在这个例子中,我使用了nginx的配置样式:
ssl_certificate /usr/local/etc/letsencrypt/live/domain.com/cert.pem;
像这样的行需要替换为这样的行
ssl_certificate /usr/local/etc/letsencrypt/live/domain.com/fullchain.pem;
然后刷新服务器的配置。
这个问题到处都有,包括大大小小的网站。
的根本原因是老教程配置网络服务器,cert.pem文件(因为它工作)而不是fullchain。Pem文件,确保浏览器获得验证证书所需的完整链。
不幸的是,苹果,Mozilla和其他一些人已经放弃了,仍然使用相同的中间证书(IdentTrust DST Global Root CA X3),该证书于昨天下午2:21:40 CST过期,以检查之前使用它的证书。iOS 15.0 (19A346)是唯一发布的苹果软件版本,即使服务器没有发送完整的链,也会自动使用新的中间证书。
服务器使用的实际中间证书是由ISRG Root X1颁发给R3的,但除非您配置服务器通过使用全链显式地告诉浏览器。Pem在服务器配置中,那么遗憾的是,许多软件公司已经犯了错误,他们自己没有做好。
但是再一次,这是一个简单的修复。只需在服务器的配置文件"cert.pem"→"fullchain.pem"你会没事的。
没有理由不继续使用全链。Pem文件永久保存。事实上,即使在这种情况之前,各种网络(大学校园WiFi网络就是臭名昭著的)都会破坏你的证书的授权链,除非你使用全链。Pem文件。Let's Encrypt现在甚至建议将此作为配置web服务器使用证书的唯一正确方法。