社区提示 - 安全常见问题

请在发布前阅读

请查看该帖子和内部链接的帖子,然后使用右上方的 :search: 搜索您的问题。本社区提示包含有关 SSL/TLS 的最常见问题和答案,:search: 可提供额外的建议和见解。

背景
该安全性常见问题涵盖 Cloudflare SpectrumCloudflare Access、免费 Universal SSL、边缘证书、自签名证书和原始证书、TLS、HSTS,以及其他任何关于 SSL/TLS 应用的内容。

重定向循环
如果您在 Cloudflare SSL/TLS 应用程序的“概览”选项卡下使用“灵活 SSL”模式,并且在源站上强制使用 HTTPS,这极有可能是该问题的原因。灵活模式在工作时 不会 加密源站和 Cloudflare 之间往返的流量。由于您的源站强制使用 https,并随后将请求重定向到 Cloudflare,之后 Cloudflare 会再次尝试发送同一 http 请求,从而产生无限循环。该问题在本知识库指南中进行了讨论 -- 为什么灵活 SSL 会导致重定向循环?

您可以采取以下方案来修复此问题:

在此社区教程
https://community.cloudflare.com/t/step-2-setting-up-ssl-with-cloudflare/94646 中了解有关 SSL 的更多信息。

子域过深/自定义证书和扩展验证证书
请注意,当 Cloudflare 在您的区域上成功部署我们的“Universal SSL”产品后,这些证书将仅涵盖单个级别的子域(*.example.com,而不是 *.*.example.com):

  • 适用 - www.example.com
  • 适用 - example.com
  • 适用 - test.example.com
  • 不适用 - www.test.example.com
  • 不适用 - staging.www.example.com

如果您需要适用于多级子域的证书,则可以购买 具有自定义主机名的专用 SSL 证书,购买时您可在其中声明任何多级子域。

如果您希望使用自己的证书,而不是我们提供的 Universal SSL 证书,则需要升级至我们的 Business 方案并上传自定义证书

请注意,Cloudflare 目前不提供“扩展验证”证书。如果您希望使用该证书,则需要单独购买,并使用自定义 SSL 上传将其上传至您的 Cloudflare 帐户。

或者,您也可以购买 高级证书管理器,然后创建带有自定义主机名的专用证书。

了解高级证书管理器
管理专用 SSL 证书

支持的客户端(仅 SNI)

我们付费方案(Pro、Business 和 Enterprise)的 SSL 证书适用于所有桌面浏览器。如果您担心兼容性问题,或有很多用户使用旧版浏览器,则建议您更新到我们的其中一个付费方案。

专用证书和 Universal SSL 都使用服务器名称指示 (SNI) 证书,该证书使用椭圆曲线数字签名算法 (ECDSA)。SNI 和 ECDSA 证书适用于以下新式浏览器:

在 Windows Vista 或 OS X 10.6 或更高版本上安装的桌面浏览器:

  • Internet Explorer 7
  • Firefox 2
  • Opera 8(已启用 TLS 1.1)
  • Google Chrome v5.0.342.0
  • Safari 2.1

移动浏览器

  • 用于 iOS 4.0 的 Mobile Safari
  • Android 3.0 (Honeycomb) 和更高版本
  • Windows Phone 7

请注意,要通过 Cloudflare 连接到您的网站,与您的网站通信的任何 API 服务或支付网关也必须支持 SNI 和 ECDSA。

SSL 模式 - SSL 到源站

Cloudflare 提供以下几种 SSL 模式:

  1. 灵活 SSL:SSL 在 Cloudflare 边缘服务器处终止。您的客户端和 Cloudflare 之间的所有内容都会加密,而 Cloudflare 和源站之间的所有内容都不会加密。您不需要为此提供证书。
  2. 完全 SSL:SSL 在 Cloudflare 边缘服务器处终止。然后它会再次加密,并在全程加密的情况下传送回您的服务器。您将需要在服务器上安装 SSL 证书。您可以对此选项使用自签名证书。
  3. 完全 SSL(严格):与完全 SSL 相同,但您必须提供由 GlobalSign 等证书颁发机构签署的证书。如果您希望启用完全严格,则可以在主机上安装免费的 Cloudflare 源站证书

有关我们 SSL 设置的完整概述,可在[此处]获取 (https://support.cloudflare.com/hc/en-us/articles/200170416)。

如果您希望使用“完全”或“完全(严格)”配置选项,则需要在源 Web 服务器上拥有一个证书。

如果您使用“完全(严格)”选项,则该 SSL 证书必须有效,并由证书颁发机构签署或使用我们的 Origin CA 服务。

混合内容错误和重定向循环

如果您发现通过 HTTPS 连接时浏览器中缺失绿色挂锁,则可能存在混合内容问题。混合内容错误意味着您的网站正通过 HTTPS 加载,但某些资源正通过 HTTP 加载。要解决这个问题,您需要编辑源代码并更改所有资源,以通过相对路径或直接通过 HTTPS 进行加载。

例如,如果您使用完整 URL 加载图像:

<img src="http://example.com/image.jpg"/>

您可能需要将其更改为:

<img src="//example.com/image.jpg"/>

删除 http: 后,浏览器将使用访问者已使用的协议。如需更多信息,请参见这篇文章。或者,您还可以安装 Mixed-Content Fixer 插件,该插件会自动将这些部分中的 http 替换为 https。对于 Wordpress,我们已使用 SSL Insecure Content Fixer 插件成功解决过此问题。

还有一个选项是启用自动 HTTPS 重写功能,该功能可能会自动为您修复这些错误。请注意,JavaScript 或 CSS 加载的资源不会自动重写,网站仍会显示混合内容警告。

这些问题通常与使用 Cloudflare 灵活 SSL 服务的用户相关。您可以登录 Cloudflare Dashboard,点击 SSL/TLS 应用程序的“概览”选项卡,然后向下查看 SSL 设置,以检查自己是以“完全”还是“灵活”模式使用 Cloudflare 的 SSL 服务。

灵活 SSL 用户

灵活模式在工作时 不会 加密源站和 Cloudflare 之间往返的流量。由于您的源站强制使用 https,并随后将请求重定向到 Cloudflare,之后 Cloudflare 会再次尝试发送同一 http 请求,从而产生无限循环。我能够确认您的站点确实在执行 HTTPS 重定向。

您可以采取以下方案来修复此问题:

此外,Cloudflare 还会附加一个 X-Forwarded-Proto 标头,依据用户用于访问站点的协议,这可能是 http 或 https,如下所示:

X-Forwarded-Proto: https

如果已设置“灵活 SSL”且访问者通过 HTTPS 向 Cloudflare 提出请求 - Cloudflare 通过 HTTP 向源站提出请求。在这种情况下,源站可以通过检查此标头来辨别访问者正在使用 HTTPS。

未提供证书
查看 DNS 应用程序记录以确保 ( example.com ) 和 www.example.comexample.com 具有橙色云标记。

如要配置 Cloudflare Universal SSL 证书,您必须为任何所需记录设置橙色云标记。在 DNS 记录具有橙色云标记后,便可开始配置 Cloudflare Universal SSL 证书。

如需有关执行此操作的更多信息,请参阅以下快速设置指南:

其他 SSL/TLS 错误

修复错误 520:Web 服务器返回未知错误
修复错误 521:Web 服务器关闭
修复错误 525:SSL 握手失败
修复错误 526:SSL 证书无效

如果您需要更多帮助
本社区中的其他 Cloudflare 用户可能能够帮助您,登录 Cloudflare 并将问题发布到社区。当您在社区上发帖时,请确保尽可能多地包含以下信息:您看到的具体错误消息、发生这种情况的 URL、错误的屏幕截图以及重现错误的步骤。请说明您尝试了哪些故障排除步骤,以便我们更好地帮助您。

感谢专家提供建议
本社区提示将保持开放,供社区专家和熟悉此问题的人提供意见。我们非常欣赏“始终可以尝试的三件事”、“先做这个”或“根据我的经验”之类的评论。

这是 Cloudflare 社区提示,要查看其他提示,请单击此处

Çevirmek…traduzir…翻译…traducir…Traduire…Übersetzen…:greyg: 翻译此提示

AQSECT 030321