SSL“无法获取本地颁发者证书”:“完整链”与“根”?

SSL“无法获取本地颁发者证书”:“完整链”与“根”?

概括

总之,我有一些与证书相关的文件和一些与证书相关的说明,但我不确定哪些文件是哪些!

背景

我刚刚使用 Lets Encrypt 安装了一个证书acme.sh

该过程的输出如下所示:

[Sat Aug 18 02:50:24 UTC 2018] Your cert is in  /home/ubuntu/.acme.sh/www.foobar.xyz/www.foobar.xyz.cer
[Sat Aug 18 02:50:24 UTC 2018] Your cert key is in  /home/ubuntu/.acme.sh/www.foobar.xyz/www.foobar.xyz.key
[Sat Aug 18 02:50:24 UTC 2018] The intermediate CA cert is in  /home/ubuntu/.acme.sh/www.foobar.xyz/ca.cer
[Sat Aug 18 02:50:24 UTC 2018] And the full chain certs is there:  /home/ubuntu/.acme.sh/www.foobar.xyz/fullchain.cer

因此,在配置 Nginx 之后,当请求到达以下地址时,所有操作都可以正常进行:https://www.foobar.xyz通过传统浏览器。

问题

但是当我通过 Curl 发出相同请求时,我得到了:

curl: (60) SSL certificate problem: unable to get local issuer certificate

因此似乎有两种方法可以解决这个问题。

  • 告诉 Curl 忽略该问题或向 curl 提供客户端认证机构列表。
  • 修改服务器上的证书

问题

我想要第二个选项,即服务器上的更改,并且此页面提供了说明具体怎么做呢...

2)如果您在一个捆绑文件中收到了中级证书,或者在您的帐户中下载了证书文件,则可以使用此命令:

cat example_com.crt bundle.crt >> ssl-bundle.crt

将连接的文件放入 Nginx 服务器上具有 SSL 证书的目录中。

我遇到的问题是,我不确定运行 acme.sh 生成的哪些文件对应于 example_com.crt 和 bundle.crt ?

我认为 bundle.crt 对应于 www.foobar.xyz.cer ?

但我不确定 example_com.crt 对应的是什么?

答案1

该捆绑包为fullchain.cer。它包含ca.cerwww.foobar.xyz.cer

相关内容