如何使用cloudflare oigin证书建立一个正确的CA链?

问题描述 投票:0回答:1

使用案例

这是我的用例。我有一个页面可以通过cloudflare(代理),让我们称它为example.com.我创建了一个Origin证书与Cloudflare和链接它在我的nginx配置,工作正常。Cloudflare在 "完全 "SSL模式下工作。现在,我想能够基本上添加 127.0.0.1 example.com 对我 /etc/hosts 所以服务器本身就可以直接访问该页面(使用不同的域名和该服务器上运行的软件来规避这个问题是不可能的)。

现在很明显,当我 curl -v https://example.com 我得到一个ssl错误。

我做了什么,到目前为止

所以基本上,做了一些研究,了解了CA链等.我发现Cloudflare Origin的根CA的(Cloudflare 文件步骤4),并将其包含在我的nginx服务器的证书链中(基本上是先用Cloudflare Origin为我生成的证书,然后用Root CA)。我还安装了Root CA到 /usr/share/ca-certificates (和 /usr/local/share/ca-certificates)和运行 dpkg-reconfigure ca-certificates 并将其适当加入到 /etc/ssl/certs 导演: 到目前为止还不错?

结果呢?没有工作。

进一步研究

偶然发现这个 指南 我看了以下内容。

  • cert.pem 我的Cloudflare的证书是
  • ca.pem 是cloudflare的根CA(ecc文件)。
root@host:~/ssltest# openssl verify cert.pem
O = "CloudFlare, Inc.", OU = CloudFlare Origin CA, CN = CloudFlare Origin Certificate
error 20 at 0 depth lookup: unable to get local issuer certificate
error cert.pem: verification failed
root@host:~/ssltest# openssl x509 -noout -issuer -in cert.pem
issuer=C = US, O = "CloudFlare, Inc.", OU = CloudFlare Origin SSL Certificate Authority, L = San Francisco, ST = California
root@host:~/ssltest# openssl x509 -noout -issuer -in ca.pem
issuer=C = US, ST = California, L = San Francisco, O = "CloudFlare, Inc.", OU = CloudFlare Origin SSL ECC Certificate Authority
root@host:~/ssltest# openssl verify -CAfile ca.pem cert.pem
O = "CloudFlare, Inc.", OU = CloudFlare Origin CA, CN = CloudFlare Origin Certificate
error 20 at 0 depth lookup: unable to get local issuer certificate
error cert.pem: verification failed

所以基本上发行人的 cert.pem 和主题 ca.pem 这意味着对我来说,要么是有一个中级证书,我不知道如何获得,或者Cloudflare给我的证书,不是从他们给我的根CA。要么是我不知道怎么弄到的中级证书,要么是Cloudflare给我的证书不是来自他们给我的根CA。

而且Issuer和Subject之间的差别超级小。

  • CloudFlare Origin SSL Certificate Authority
  • CloudFlare Origin SSL ECC Certificate Authority

我可以做什么来解决这个问题呢?我可能只是没有看到这里的东西,有人可以帮助我吗?

ssl nginx cloudflare ca
1个回答
1
投票

你所说的网站上提供了两个CA证书。

enter image description here

第一张是RSA证书,上面写着 "CloudFlare Origin SSL Certificate Authority"。第二张是ECC证书OU "CloudFlare Origin SSL ECC Certificate Authority"。

看来你拿的是ECC证书,而你应该拿的是RSA证书。

© www.soinside.com 2019 - 2024. All rights reserved.