gpt4 book ai didi

ssl - 如何使用 cloudflare 原始证书构建正确的 CA 链?

转载 作者:行者123 更新时间:2023-12-04 22:41:15 28 4
gpt4 key购买 nike

用例

这是我的用例:我有一个通过 cloudflare(代理)可用的页面,我们称之为 example.com。
我使用 Cloudflare 创建了一个原始证书并将其链接到我的 nginx 配置中,工作正常。 Cloudflare 在“完整”SSL 模式下工作。
现在我希望能够基本添加127.0.0.1 example.com给我的/etc/hosts因此服务器本身可以直接访问该页面(使用其他域和在该服务器上运行的软件来规避这一点并不是一个真正的选择)。

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

到目前为止我做了什么

所以基本上,做了一些研究,了解了CA链等等。
我找到了 Cloudflare Origin 根 CA(Cloudflare Documentation,第 4 步)并将其包含在我的 nginx 服务器的证书链中(基本上首先是他们为我生成的 Cloudflare Origin 证书,然后是根 CA)。我还将根 CA 安装到 /usr/share/ca-certificates (和 /usr/local/share/ca-certificates )并运行 dpkg-reconfigure ca-certificates它已正确添加到 /etc/ssl/certs目录到目前为止,一切都很好?

结果:不起作用。

进一步的研究

偶然发现这个guide我查看了以下内容:

  • 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 的证书。

    Issuer 和 Subject 之间的差异也非常小:
  • CloudFlare Origin SSL Certificate Authority
  • CloudFlare Origin SSL ECC Certificate Authority

  • 我能做些什么来修复它?
    我可能只是在这里看不到东西,有人可以帮我吗?谢谢!

    最佳答案

    您所指的网站上提供了两个 CA 证书:

    enter image description here

    第一个是带有 OU“CloudFlare Origin SSL Certificate Authority”的 RSA 证书。第二个是ECC证书OU“CloudFlare Origin SSL ECC Certificate Authority”。

    看起来你拿了 ECC 证书,而你应该拿了 RSA 证书。

    关于ssl - 如何使用 cloudflare 原始证书构建正确的 CA 链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62068801/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com