适用于 SaaS 提供商的 Cloudflare SSL

在线组织采用 SSL / TLS 加密已成为一种安全性最佳实践,并且由于希望建立更安全的互联网的大型技术公司的压力,这已日益成为一种要求。例如,从 2016 年底开始,谷歌浏览器开始将不使用 HTTPS 的网站标记为“不安全”。与此同时,Mozilla 的火狐浏览器开始对试图提交未由 HTTPS 保护的信息形式的用户发出更严重的警告。2

http treatment

Cloudflare SSL for SaaS 允许 SaaS 公司的最终客户继续使用自定义虚域,同时通过 SSL安全证书保护其通信。最终客户的利益包括品牌访问者体验、增强的信任度、SEO 排名以及使用 HTTP/2 来提高速度的能力。Cloudflare 可以自动完成从购买到部署再到证书更新的整个 SSL 生命周期,并且可以在几分钟之内完成,使 SaaS 公司可以在客户上线流程中提供这一优势。

解决 SSL 最终客户需求时,SaaS 提供商可能面对三种境况:

ssl for saas scenario 1

未加密但品牌虚域

没有 SSL 的自定义虚域缺乏 SSL 的性能优势和安全的数据传输,致使它们容易受到监听,并且在到达访问者之前被修改或注入内容。

ssl for saas scenario 2

加密但非品牌化域

通过 SaaS 提供商启用 SSL 的域缺少自定义虚域,从而导致品牌降级和较低的 SEO 排名。

ssl for saas scenario 3

具有挑战性的内部方法

想要加密品牌化虚域的 SaaS 提供商可以手动管理 SSL 生命周期,从而延长部署时间和开销成本,也可以构建复杂的自动内部解决方案。

“通过 SSL for SaaS,我们实现了一个更简单的流程,因为 Cloudflare 的 API 可以处理客户 SSL 证书的置备、服务、自动续订和维护。此外,端到端 HTTPS 现在意味着我们为客户增强了隐私和性能,并可以利用我们以前无法使用的浏览器功能,例如 Local Storage(本地存储)。”
Andrew Murray
Olo 首席技术官

与 Cloudflare 联系。

品牌访问者体验

品牌访问者体验

为最终客户提供自有品牌自定义网域方案的 SaaS 提供商可以继续这样做,同时享受完全托管的 SSL 证书的额外好处。自有品牌网域为最终客户提供了更高的 SEO 排名并提高了访问者的信任度。

安全和高性能客户资产

安全和高性能客户资产

最终客户域上的 SSL/TLS 证书可确保敏感客户数据的安全传输,防止中间人攻击和网络监听。此外,HTTP/2 协议可用于进一步提高速度。

自动化 SSL 生命周期管理

自动化 SSL 生命周期管理

Cloudflare 管理 SaaS 提供商的客户虚域的整个 SSL 生命周期,从私钥创建和保护到域验证、签发、续订和重新发布,一应俱全。

快速的全球 SSL 部署

快速的全球 SSL 部署

在 SSL 签发程序期间,Cloudflare 在其覆盖 200 个城市的全球数据中心网络中部署新证书,使 HTTPS 在数分钟内上线,并尽可能接近访问者。

建立内部 SSL 解决方案的挑战

要为自定义虚域构建内部 SSL 解决方案,可以采取两种方法,这两种方法都需要 SaaS 提供商和最终客户共同努力。下图中的自动化路径(上部)自动执行 SSL 流程,但需要大量的工程工作和应对复杂的安全挑战。手动路径(下部)需要 SaaS 提供商团队及其最终客户共同努力,而错过证书过期期限和服务中断的可能性更高。无论这些路径的选择,性能都可能会受到影响,除非可以在大规模全球分发网络上部署 SSL 证书。

  仅 HTTP CNAME 手动 上传 证书 手动 管理 证书 生命周期 构建和训练 客户联系 团队 自定义 API 集成(如 使用 Let’s Encrypt) 时间 工程 努力 自动化路径 手动路径 As # / 网站成长 全局 证书 分发 网络 人工续订 需要 客户投入工作 高级 挑战 安全处理 加密密钥 持续 维护 和持续 支持工作 Cloudflare 路径 轻松的 Cloudflare API / UI 集成

仅 HTTP CNAME

首先,SaaS 提供商最终客户仅在其 CNAME 的自定义虚域上发送和接收 HTTP 流量。

手动上传证书

要启动将 SSL 添加到 CNAME 自定义虚域的过程,需要设置一个过程,客户可以通过该过程购买证书并将其发送到 SaaS 提供商以进行手动上传。

手动管理证书生命周期

上传客户证书后,需要手动管理,以处理所述证书的生命周期。这包括通过网域验证、签发、更新和重新签发进行的私钥签发/保护。

建立 API 集成(例如,使用 Let's Encrypt)

随着使用 SaaS 提供商的服务的网站和客户总数的规模开始扩大,将需要做出以下决定:为自定义网域自动化 SSL 生命周期过程——这需要进行更高水平的工程设计,或者继续扩展手动生命周期管理——这需要较少的工程工作量,但会给内部团队和最终客户带来负担。

安全地处理加密密钥

私钥必须具有安全的存储、静态加密,并且绝不能以明文形式写入磁盘。加密密钥很容易,但是要实时解密则很困难,因为这需要人工或大量的工程工作。私钥管理最佳实践已在 OWASP.org 上发布。Cloudflare 是为数百万个网域生成和保护私钥的专家,提供 Universal SSL、专用证书和 SSL for SaaS 产品。

全球证书发行网络

要减轻性能损失,需要在全球范围内系统地分发证书,使凭证尽可能接近客户的访问者。最终客户访问者的请求必须行进的距离越远,其页面加载时间就越长。使用 TLS 1.2,初始 TLS 握手需要 2 次往返;如果此握手只能在少数地方结束,性能将受到影响。

持续的维护与持续的支持工作(自动化路径)

对于选择了自动方法来构建内部 SSL 解决方案的 SaaS 公司而言,大部分维护工作将包括保持代码库更新并与证书颁发机构集成和标准兼容。

建立和培训客户联络团队

SaaS 提供商公司内部的新团队或现有团队将需要为最终客户手动管理证书生命周期。客户联系小组将需要联系客户,提供有关证书到期的最新消息,并要求续订新证书。

手动续订,需要客户的努力

客户需要参与到证书更新流程中,他们要更新证书并将之重新发送给负责管理上传过程的团队。此外,他们必须在现有证书到期之前执行此续订过程。如果现有证书到期,则除非采取预防措施,否则客户的 Internet 资产可能会脱机。

全球证书发行网络

要减轻性能损失,需要在全球范围内系统地分发证书,使凭证尽可能接近客户的访问者。最终客户访问者的请求必须行进的距离越远,其页面加载时间就越长。使用 TLS 1.2,初始 TLS 握手需要 2 次往返;如果此握手只能在少数地方结束,性能将受到影响。

持续的维护与持续的支持工作(手动路径)

对于选择手动方法来构建内部 SSL 解决方案的 SaaS 公司,大多数维护将包括 SaaS 提供商进行的持续的手动工作——这是为了安全地保护私钥,管理证书生命周期,提醒客户续订,并重新上传新证书;SaaS 提供商最终客户将必须参与证书生命周期流程,他们需要定期更新和重新发送证书。

轻松的 Cloudflare API / UI 集成

CloudFlare 的 SSL for SaaS 解决方案只需要很少的工程工作,并消除了 SaaS 提供商和最终客户管理 SSL 生命周期的负担。

SSL for SaaS 如何工作?

SSL for SaaS 流程完全由 Cloudflare 处理,并且仅需要 SaaS 提供商发送一个 API 调用(或在 Cloudflare 仪表板中单击几下),作为最终客户自定义网域上线流程的一部分。之后,SaaS 提供商最终客户只需要将初始 CNAME 添加到 SaaS 提供商的域中。Cloudflare 完全管理其余自定义网域的上线流程。

此过程的其余部分由 Cloudflare 管理,包括:

  • 请求证书颁发机构验证最终客户的自定义网域以进行 SSL 证书签发。
  • 从证书颁发机构接收验证令牌,并使其可以从 Cloudflare 的边缘访问。
  • 指示证书颁发机构完成 HTTP 验证,然后请求证书颁发机构颁发SSL 证书。
  • 接收证书并将其推送到覆盖全球 200 个城市的 Cloudflare 数据中心的网络边缘,以优化延迟和 TLS 性能。

常见问题

问:客户的访问量如何发送到我的源站?它安全吗?

答:是的,Cloudflare 鼓励您使用 Full 或 Strict SSL 模式,以便流量使用 HTTPS 发送到您的源站。可以在区域的 Crypto 选项卡下配置此选项。如果使用 Strict 模式,则必须确保源站上的证书中包含与客户的主机名匹配的主题备用名称 (SAN),如support.yourcustomer.site。我们的 Origin CA 产品可用于生成这些证书以用于 Strict 模式。

问:签发证书并准备使用需要多长时间?

答:证书通常在几分钟内即可得到验证、签发并推送到我们的边缘。您可以通过发起 GET 调用来监视各种状态(初始化、待定验证、待签发、待部署、活动)的进度。

$ curl -sXGET -H "X-Auth-Key: [YOUR KEY]" -H "X-Auth-Email: [YOUR EMAIL]" https://www.cloudflare.com/api/v4/zones/[ZONEID]/custom_hostnames?hostname=support.yourcustomer.site
{
"result": {
"id": "cdc2a12a-99b3-48b8-9039-ad1b48c639e5",
"hostname": "support.yourcustomer.site",
"ssl": {
"id": "3463325d-8116-48f3-ab4e-a75fb9727326",
"type": "dv",
"method": "http",
"status": "active"
}
},
"success": true
}

问:续签或重新签发呢?我或我的客户需要做什么事情吗?

答:不,Cloudflare 会为您处理所有一切。我们颁发的证书有效期为一年(365 天),并且将在到期前至少 30 天自动更新。这些证书以您客户的主机名唯一地颁发,因此,只要 CNAME 仍然存在,我们就可以通过展示该主机名的“网域验证控制”来继续轻松续订。如果客户有其他想法,我们建议您向 Cloudflare 发送 DELETE 请求,以便 Cloudflare 可以从边缘删除证书而不尝试续订。

问:我的客户将享受 Cloudflare 的哪些好处?

答:除了保护客户的 DNS 基础结构(除非他们还将 Cloudflare 用于权威名称服务)外,简短的答案是:所有好处。一旦他们的流量指向您的白标主机名,Cloudflare 就能够提供行业领先的 DDoS 保护、CDN、WAF、HTTP/2、负载平衡等。

问:如果我的客户已经在其自定义主机名上使用 HTTPS 怎么办?有没有办法避免迁移时的停机时间?

答:在某些情况下,您可能已经在内部根据客户提供的关键材料拼凑了一个解决方案。或者您的客户选择提供 HTTPS 的竞争对手(或内部解决方案)来使用其所需的主机名,无法忍受短暂的维护周期。

对于这些情况,我们将 Dedicated Certificates 中可用的两种替代“预验证”方法扩展到我们的 SSL for SaaS 产品:电子邮件和 CNAME。只需在上面的 API 调用中将 SSL 方法从“http”更改为“email”或“cname”,然后发送请求即可。有关更多信息,请参见 API 文档。

CNAME 令牌是另一种替代方法,通常在您控制 DNS 的自定义名称时使用(我们的某些 SaaS 客户,特别是那些提供网站建设和托管服务的客户,允许将自定义网域注册为工作流的一部分)。

最后,您可以在源站上自由提供“http”验证方法返回的 HTTP 令牌(而不是让 Cloudflare 在反向代理期间插入它),并且一旦它就位,我们的自动重试队列将对其进行检测。如果您想在其就位后告诉 Cloudflare 并立即重试,则始终可以向端点发送 PATCH,使用 POST 期间发送的相同 SSL 正文,我们将立即进行检查。

与 Cloudflare 联系。