Cloudflare 与 Salesforce Commerce Cloud 合作,为 Salesforce Commerce Cloud 客户的 websites 提供 Cloudflare 的性能和安全优势。
如果您使用 Salesforce Commerce Cloud 且同时拥有 Cloudflare 计划,您可以使用您自己的 Cloudflare 区域先将 Web 流量代理到您的区域,然后再代理到 Salesforce Commerce Cloud(SaaS 提供商)的区域。此配置选项被称为 O2O。
O2O 的优势包括在发往您的 Salesforce Commerce Cloud环境的流量上应用您自己的 Cloudflare 区域的服务和设置,例如 WAF、Bot Management、Waiting Room 等。
有关启用 O2O 后流量如何路由的更多详情,请参阅 How O2O works。
启用 O2O 需要满足以下条件:
- 你必须将 SFCC 环境配置为 “SFCC Proxy Zone”。如果你当前使用的是 “SFCC Legacy Zone”,则无法启用 O2O。
- 有关不同类型 SFCC 配置的更多详情,请参阅 Salesforce FAQ on SFCC Proxy Zones ↗。
- 有关如何将 SFCC 环境迁移为 “SFCC Proxy Zone” 的说明,请参阅 SFCC Legacy Zone to SFCC Proxy Zone migration guide ↗。
- 你自己的 Cloudflare zone,且为 Enterprise 计划。
如果满足上述要求,即可按 hostname 启用 O2O。要在 Cloudflare zone 内为特定 hostname 启用 O2O,请创建一条 Proxied CNAME DNS 记录,其目标为 SFCC Business Manager(SFCC 客户用于配置店面环境的仪表板)提供的 CNAME。
SFCC Business Manager 提供的 CNAME 形如 commcloud.prod-abcd-example-com.cc-ecdn.net,包含 3 个不同部分。对于每个将流量路由到 SFCC 的 hostname,请务必更新示例 CNAME 的每个部分,以匹配你的 SFCC 环境:
- Environment:
prod应更改为prod、dev或stg。 - Realm:
abcd应更改为 SFCC 分配给你的 Realm ID。 - Domain Name:
example-com应更改为与你的域名匹配的连字符格式。
| Type | Name | Target | Proxy status |
|---|---|---|---|
CNAME |
<YOUR_HOSTNAME> |
commcloud.prod-abcd-example-com.cc-ecdn.net |
Proxied |
为正确配置 O2O,请确保你的 Proxied DNS 记录直接指向 SFCC CNAME。不要通过指向 zone 中另一条以 SFCC CNAME 为目标的 Proxied DNS 记录来间接指向 SFCC CNAME。
正确配置
例如,如果将流量路由到 SFCC 的 hostname 为 www.example.com 与 preview.example.com,则以下是你的 Cloudflare zone 中的正确配置:
| Type | Name | Target | Proxy status |
|---|---|---|---|
CNAME |
www.example.com |
commcloud.prod-abcd-example-com.cc-ecdn.net |
Proxied |
CNAME |
preview.example.com |
commcloud.prod-abcd-example-com.cc-ecdn.net |
Proxied |
错误配置
以下是错误配置,因为 preview.example.com 通过 www.example.com 这条 Proxied DNS 记录间接指向 SFCC CNAME,这意味着 hostname preview.example.com 将无法正确启用 O2O:
| Type | Name | Target | Proxy status |
|---|---|---|---|
CNAME |
www.example.com |
commcloud.prod-abcd-example-com.cc-ecdn.net |
Proxied |
CNAME |
preview.example.com |
www.example.com |
Proxied |
当您的 Cloudflare 区域内的主机名启用了 O2O 时,您将对该主机名上的流量承担额外责任,因为您现在可以配置各种 Cloudflare 产品来影响该流量。与 O2O 兼容的部分 Cloudflare 产品包括:
有关兼容产品的完整列表和潜在限制,请参阅产品兼容性。
如果您的 Cloudflare 区域使用的是 Enterprise 计划,您可以使用区域挂起(zone hold)功能。该开关可防止您的域名在其他 Cloudflare 账户中被创建为区域。此外,如果启用了区域挂起,它将阻止在 Salesforce Commerce Cloud 上载入的自定义主机名的激活。Salesforce Commerce Cloud 将针对您的自定义主机名收到以下错误消息:The hostname is associated with a held zone. Please contact the owner of this domain to have the hold removed.
要成功在 Salesforce Commerce Cloud 上激活自定义主机名,该区域的所有者需要临时释放挂起。如果您只是将子域作为自定义主机名载入到 Salesforce Commerce Cloud,则只需临时禁用名为 Also prevent Subdomains 的子功能。
一旦临时禁用了区域挂起,请按照 Salesforce Commerce Cloud 的说明刷新自定义主机名,它应该就会激活。
如果您是 Salesforce Commerce Cloud 客户,并在特定主机名上启用了 O2O 设置了自己的 Cloudflare 区域,请联系您的 Cloudflare 账户团队或 Cloudflare 支持以寻求帮助解决您自己区域中的问题。
如果存在 Cloudflare 无法解决的技术问题,Cloudflare 将咨询 Salesforce Commerce Cloud。
如果在尝试激活 Cloudflare Managed Certificate 时遇到 SSL 错误,请使用命令 dig +short example.com CAA 验证你的域名上是否有 CAA 记录。
如果确实有 CAA 记录,请验证它是否允许由 Cloudflare 支持的证书颁发机构 签发 SSL 证书。
- 将 Minimum TLS version(最低 TLS 版本) 设为 TLS 1.2
- 前往 Edge Certificates(边缘证书) ↗ 页面,向下滚动找到 Minimum TLS Version(最低 TLS 版本),并将其设为 TLS 1.2。此设置适用于 zone 中的每条 Proxied DNS 记录。
- 匹配 SFCC Business Manager 中设置的 Security Level
- 选项 1:Zone 级 - 前往 Security(安全性) 下的 Settings(设置) ↗ 页面,找到 Security Level(安全级别),并将 Security Level(安全级别) 设置为与 SFCC Business Manager 中的配置匹配。此设置适用于 Cloudflare zone 中的每条 Proxied DNS 记录。
- 选项 2:按 Proxied DNS 记录 - 如果指向 SFCC 环境的 Proxied DNS 记录与 Cloudflare zone 中其他 Proxied DNS 记录的 Security Level 不同,请使用 Configuration Rule(配置规则) 专门为指向 SFCC 环境的 Proxied DNS 记录设置 Security Level。例如:
- 在 Rules Overview(规则概览) ↗ 页面上,通过选择 Configuration Rules(配置规则) 旁的 Create rule(创建规则) 创建新的 Configuration Rule(配置规则):
- Rule name(规则名称):
Match Security Level on SFCC hostnames - Field(字段): Hostname
- Operator(运算符): is in(这将匹配 Value(值) 字段中指定的多个 hostname)
- Value(值):
www.example.comdev.example.com - 向下滚动到 Security Level(安全级别) 并点击 + Add(添加)
- Select Security Level(选择安全级别): Medium(应与 SFCC Business Manager 中设置的 Security Level(安全级别) 匹配)
- 滚动到页面底部并点击 Deploy(部署)
- Rule name(规则名称):
- 在 Rules Overview(规则概览) ↗ 页面上,通过选择 Configuration Rules(配置规则) 旁的 Create rule(创建规则) 创建新的 Configuration Rule(配置规则):
- 禁用 Browser Integrity Check(浏览器完整性检查)
- 选项 1:Zone 级 - 前往 Security(安全性) 下的 Settings(设置) ↗ 页面,找到 Browser Integrity Check(浏览器完整性检查) 并将其切换为关闭以禁用。此设置适用于 Cloudflare zone 中的每条 Proxied DNS 记录。
- 选项 2:按 Proxied DNS 记录 - 如果你希望对 Cloudflare zone 中其他 Proxied DNS 记录保持启用 Browser Integrity Check(浏览器完整性检查),但希望在指向 SFCC 环境的 Proxied DNS 记录上禁用它,请保持 Zone 级 Browser Integrity Check(浏览器完整性检查) 功能启用,并使用 Configuration Rule(配置规则) 专门为指向 SFCC 环境的 hostname 禁用 Browser Integrity Check(浏览器完整性检查)。例如:
- 在 Rules Overview(规则概览) ↗ 页面上,通过选择 Configuration Rules(配置规则) 旁的 Create rule(创建规则) 创建新的 Configuration Rule(配置规则):
- Rule name(规则名称):
Disable Browser Integrity Check on SFCC hostnames - Field(字段): Hostname
- Operator(运算符): is in(这将匹配 Value(值) 字段中指定的多个 hostname)
- Value(值):
www.example.comdev.example.com - 向下滚动到 Browser Integrity Check(浏览器完整性检查) 并点击 + Add(添加) 按钮:
- 将开关设为 Off(将显示灰色 X)
- 滚动到页面底部并点击 Deploy(部署)
- Rule name(规则名称):
- 在 Rules Overview(规则概览) ↗ 页面上,通过选择 Configuration Rules(配置规则) 旁的 Create rule(创建规则) 创建新的 Configuration Rule(配置规则):
- 在指向 SFCC 环境的 Proxied DNS 记录上绕过 Cache
- 你的 SFCC 环境(也称为 Realm)将包含一个到多个 SFCC Proxy Zone,缓存始终发生在这些 Proxy Zone 中。在对应域名的 SFCC Proxy Zone 中,SFCC 会执行自己的缓存优化,因此建议在你的 Cloudflare zone 中绕过指向 SFCC 环境的 Proxied DNS 记录上的缓存,以避免 “双重缓存” 场景。这可通过 Cache Rule(缓存规则) 完成。
- 如果未创建 Cache Rule(缓存规则),缓存将同时发生在你的 Cloudflare zone 与对应的 SFCC Proxy Zone 中,这在 SFCC 环境中使缓存失效或清除时可能导致问题。
- 有关 SFCC 环境中缓存的更多信息,请参阅 SFCC's Content Cache Documentation ↗
- 在 Rules Overview(规则概览) ↗ 页面上,通过选择 Cache Rules(缓存规则) 旁的 Create rule(创建规则) 创建新的 Cache Rule(缓存规则):
- Rule name(规则名称):
Bypass cache on SFCC hostnames - Field(字段): Hostname
- Operator(运算符): is in(这将匹配 Value(值) 字段中指定的多个 hostname)
- Value(值):
www.example.comdev.example.com - Cache eligibility(缓存资格): 选择 Bypass cache(绕过缓存)。
- 滚动到页面底部并选择 Deploy(部署)。
- Rule name(规则名称):
- 可选 - 将 SFCC Business Manager 中的 Custom Certificate 上传到你的 Cloudflare zone:
- 你通过 SFCC Business Manager 或 SFCC CDN-API 上传的 Custom Certificate 存在于对应的 SFCC Proxy Zone 中,将为 SFCC 店面 hostname 终止 TLS 连接。因此,是否将同一 Custom Certificate 上传到你自己的 Cloudflare zone 是可选的。这样做后,你的 Cloudflare 账户中具有特定角色的 Cloudflare 用户可以接收 Custom Certificates 的到期通知。更多详情请阅读 renew custom certificates。
- 此外,由于你现在拥有自己的 Cloudflare zone,你可以使用 Cloudflare 的多种边缘证书产品,这意味着可能有不止一张证书覆盖相同的 SAN。在这种情况下,会通过证书优先级流程来决定在 Cloudflare 边缘提供哪张证书。如果你发现 SFCC 店面 hostname 展示的证书与你通过 SFCC Business Manager 或 SFCC CDN-API 上传的不同,很可能是证书优先级流程导致的。更多详情请阅读 certificate priority。