我使用由我们加密发出的SSL证书来处理NodeJS服务器。它工作在一些客户端(在我的macOS上是Safari和Firefox ),而不是其他客户端(curl在我的macOS上,Safari在iOS上)。iOS上的通知是:
Not trusted
Expired 30/09/21 07:01:15curl上的通知是:
curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). If the default bundle file isn't adequate, you can specify an alternate file using the --cacert option.检查证书显示日期是有效的。我在“让我们加密”中找到了这个警告:
DST根CA X3根证书已于9月30日14:01:15 2021格林尼治时间到期。..。如果您的站点适用于大多数设备,但对某些设备不起作用,则问题在于它们的信任存储区(他们的受信任根证书列表)。..。macOS、iOS等操作系统保存了过期的R3 > DST X3链,即使您的服务器不再使用它。尝试重新启动受影响的客户端设备。
我强制更新证书,将私钥和完整链复制到NodeJS位置,并重新启动服务器。我重新启动了iOS设备。新的日期显示在我的浏览器和iOS设备上。但是iOS设备仍然不信任这个网站。
网站是www.emotionathletes.og。
我如何确保所有客户获得正确的证书链,并可以访问该网站?
发布于 2021-10-01 13:07:16
由于无法控制客户端,所以最安全的方法是开始使用其他CA颁发的证书。
一个可能的CA是ZeroSSL (https://zerossl.com)。他们还通过ACME协议提供证书,不收取任何费用,比如让我们加密(https://zerossl.com/letsencrypt-alternative/),并且与旧设备(https://help.zerossl.com/hc/en-us/articles/360058294074-ZeroSSL-Compatibility-List)有很好的兼容性。
如果您已经在使用certbot命令行工具来管理您的“让我们加密证书”,那么您可以向它添加几个额外的开关来开始颁发ZeroSSL证书:
$ certbot ... --server https://acme.zerossl.com/v2/DV90 --eab-kid XXX --eab-hmac-key YYY在您为自己注册帐户后,您可以从--eab-kid网站获得ZeroSSL和--eab-hmac-key的值。
https://serverfault.com/questions/1079261
复制相似问题