如何在AWS中配置无SSL错误的加权流量分发(75%至Server A,25%至Server B)
解决AWS加权流量分发的SSL证书匹配问题
核心问题在于:你当前的weightedredirect.mydomain.com域名通过CNAME直接指向Server A/B的域名,但这两台服务器的SSL证书仅包含自身域名,不覆盖weightedredirect.mydomain.com,导致浏览器验证证书时出现不匹配错误。以下是三种可行的解决思路:
方案一:给目标域名单独部署匹配的SSL证书
- 在AWS Certificate Manager(ACM)中申请覆盖
weightedredirect.mydomain.com的免费SSL证书,通过DNS验证完成签发(直接在托管区域添加ACM生成的验证记录即可) - 将该证书分别部署到Server A和Server B的Web服务(如Nginx、Apache)或前端负载均衡器上,确保服务配置中绑定
weightedredirect.mydomain.com域名与对应证书 - 保留原有的加权CNAME记录,此时用户访问该域名时,无论流量导向哪台服务器,都能获取到匹配的SSL证书
方案二:用CloudFront统一处理证书与流量分发
- 在CloudFront创建分发,配置两个Origin分别指向Server A和Server B,为两个Origin设置权重(Server A设75,Server B设25)
- 在us-east-1区域的ACM中申请
weightedredirect.mydomain.com的SSL证书(CloudFront要求证书必须部署在该区域),并绑定到CloudFront分发 - 将托管区域中
weightedredirect.mydomain.com的CNAME记录替换为A/AAAA记录,指向CloudFront分发的域名 - 这种方式下,浏览器仅与CloudFront建立SSL连接(证书匹配),CloudFront再按权重转发流量到后端服务器,彻底规避后端证书不匹配的问题
方案三:扩展现有服务器证书的域名覆盖范围
- 如果Server A/B使用的是自签或第三方付费证书,在证书中添加
weightedredirect.mydomain.com作为SAN(Subject Alternative Name)域名,重新签发证书 - 将新证书部署到两台服务器的Web服务上,确保服务配置中启用该域名的证书绑定
- 此方案无需额外AWS服务,但需自行维护证书的签发与更新流程
验证技巧
修改配置后,可通过命令curl -v https://weightedredirect.mydomain.com查看证书的域名信息,确认是否包含weightedredirect.mydomain.com,以此验证配置是否生效。
内容的提问来源于stack exchange,提问作者Yara
相关产品推荐
相关产品推荐

