![Apache 和 letsencrypt ssl | 需要 cloudflare 专家或 ssl 专家的帮助](https://linux22.com/image/767308/Apache%20%E5%92%8C%20letsencrypt%20ssl%20%7C%20%E9%9C%80%E8%A6%81%20cloudflare%20%E4%B8%93%E5%AE%B6%E6%88%96%20ssl%20%E4%B8%93%E5%AE%B6%E7%9A%84%E5%B8%AE%E5%8A%A9.png)
祝愿你们都安好。
因此,只是为了解释一下我一直以来提供的设置,它对我有用,直到现在......
我有:
- 运行 apache2 的 Ubuntu 服务器用于网站
- 通过 certbot 进行 Letsencrypt(上周与新的 ubuntu 服务器一起安装)
- Cloudflare 已链接
通过这个,我可以托管我的多个网站并通过运行以下命令为它们提供免费的 ssl(letsencrypt)sudo certbot --apache
:。
下一个我将域名添加到 cloudflare 只有一个原因 - 我使用他们的代理 DNS
通过单击 DNS 页面上的橙色云。我使用 cloudflare 的原因之一是隐藏服务器所在站点的 IP,这是一个很好的便捷功能,我认为它有助于更好地抵御攻击。
这一切过去都运行良好,没有任何问题,并且 SSL 将由 letsencrypt 提供。但是现在,当我尝试同时执行这两项操作时,它会产生问题,并在您尝试加载网站时显示 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 浏览器消息。我注意到有一种 SSL 模式可以更改,还有“Edge 证书”,出于某种原因,它正在尝试制作。
我的问题是,我该如何进行更改,以便 Cloudflare 允许 Letsencrypt 提供 SSL,但使用代理功能隐藏 IP - 因为我可能必须关闭 SSL 模式?如果我将 cloudflare 中的 SSL 模式关闭,这个问题会解决吗?但是,这会导致它通过 letsencrypt/certbot 将其带到 https 网站时出现问题吗?当它过去工作时,我点击浏览器上的挂锁按钮,我看到它有颁发给 cloudflaressl.com 的证书。
谢谢你们,我希望有人能给予一些启发。
答案1
当您的原始服务器具有适当的 SSL 证书(例如 Letsencrypt)时,您需要在 SSL/TLS/概述页面中使用 Cloudflare 的完整(严格)。
您的边缘证书需要与您服务器中使用的域相匹配。
此外,为了正确允许 Certbot 验证域,您需要具备以下任一条件:
A) 在 SSL/TLS / Edge 证书页面中关闭“始终使用 HTTPS” B) 在 SSL/TLS / Edge 证书页面中打开“始终使用 HTTPS”,并在“规则”部分中设置规则,其中“www.example.com/.well-known/*”位置的自动 HTTPS 重写已关闭。