将自定义CNAME和SSL / HTTPS用于CloudFront分发时出现问题。我使用W3TC插件配置了一个CloudFront发行版以用作我的WordPress网站上的CDN,
我从托管服务提供商导入了SSL证书,以便与CloudFront发行版一起使用。我还在托管服务器上配置了CNAME以供分发(例如“ cdn.example.com”)使用,以代替CloudFront域名(例如“ d1234.cloudfront.net”)。
设置完所有这些之后,我立即注意到所有图像只是断开的图像链接。右键单击图像以在新的浏览器窗口中将其打开,导致浏览器警告我“连接不是私有的”,并且网站“可能正在冒用cdn.example.com”。消息来源显示,没有任何CloudFront CDN资源正在加载。 Chrome报告了多个资源的“ Failed to load resource: net::ERR_CERT_COMMON_NAME_INVALID
”。
经过试验后,我发现如果我停止使用CNAME(通过从W3TC插件字段中将其删除),而是使用CloudFront域名(即“ d1234.cloudfront.net”),则一切正常。因此,图像是从d1234.cloudfront.net成功加载的,而不是从cdn.example.com加载的。
除了没有使用SSL / HTTPS之外,我还有一个设置完全相同的网站:在CloudFront发行版中使用自定义CNAME根本不会造成任何问题。
因此,当我尝试使用SSL / HTTPS 和自定义CNAME时,似乎出现了CloudFront的问题。
Chrome错误报告似乎表明我导入的SSL证书存在问题(我不知道-我完全不了解SSL证书)。如果这是问题的原因,我是否应该从AWS获得证书以启用自定义CNAME的使用?如果是这样,我应该为证书规定什么?而且我不确定有两个证书如何工作-一个用于我的域,另一个用于CloudFront?