概括
总之,我有一些与证书相关的文件和一些与证书相关的说明,但我不确定哪些文件是哪些!
背景
我刚刚使用 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.cer
和www.foobar.xyz.cer
。