5.3. Configure Amazon CloudFront
检索新创建的自定义 ingress 控制器的 NLB 主机名:
NLB=$(oc -n openshift-ingress get service router-cloudfront-waf \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')$ NLB=$(oc -n openshift-ingress get service router-cloudfront-waf \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将您的证书导入到 Amazon 证书管理器中,其中
cert.pem是通配符证书,fullchain.pem是通配符证书的链,privkey.pem是通配符证书的私钥。注意无论集群要部署哪些区域,您必须将此证书导入到
us-east-1,因为 Amazon CloudFront 是全局 AWS 服务。Example
aws acm import-certificate --certificate file://cert.pem \ --certificate-chain file://fullchain.pem \ --private-key file://privkey.pem \ --region us-east-1
$ aws acm import-certificate --certificate file://cert.pem \ --certificate-chain file://fullchain.pem \ --private-key file://privkey.pem \ --region us-east-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 登录到 AWS 控制台 以创建 CloudFront 发行版。
使用以下信息配置 CloudFront 发行版:
注意如果下表中没有指定选项,请将其保留默认值(可能为空)。
Expand 选项 value 原始域
上一命令的输出 [1]
Name
rosa-waf-ingress [2]
Viewer 协议策略
将 HTTP 重定向到 HTTPS
允许的 HTTP 方法
GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
缓存策略
CachingDisabled
原始请求策略
AllViewer
Web 应用程序防火墙(WAF)
启用安全保护
使用现有的 WAF 配置
true
选择 Web ACL
cloudfront-waf备用域名(CNAME)
*.apps.example.com [3]
自定义 SSL 证书
从上面的步骤中选择您导入的证书 [4]
-
运行
echo ${NLB}以获取原始域。 - 如果您有多个集群,请确保原始名称是唯一的。
- 这应该与您用来创建自定义入口控制器的通配符域匹配。
- 这应该与上面输入的备用域名匹配。
-
运行
检索 Amazon CloudFront 分发端点:
aws cloudfront list-distributions --query "DistributionList.Items[?Origins.Items[?DomainName=='${NLB}']].DomainName" --output text$ aws cloudfront list-distributions --query "DistributionList.Items[?Origins.Items[?DomainName=='${NLB}']].DomainName" --output textCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将自定义通配符域的 DNS 使用 CNAME 更新为来自上面的步骤的 Amazon CloudFront 分发端点。
Example
*.apps.example.com CNAME d1b2c3d4e5f6g7.cloudfront.net
*.apps.example.com CNAME d1b2c3d4e5f6g7.cloudfront.netCopy to Clipboard Copied! Toggle word wrap Toggle overflow