我在AWS上运行了一个需要SSL的网站。该网站具有根据所访问的子域名必须通过白色标记的功能。例如,访问www.a.the-site.com时,网站与从www.b.the-site.com访问时的网站看起来有所不同,但它是处理两个网址的同一虚拟主机。我使用一个指向EC2实例的ELB(在这个阶段只有一个实例)这在正常的http上运行时工作正常。
我按照AWS上的分步教程(http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ssl-server-cert.html和http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elb-create-https-ssl-load-balancer.html#configure-https-listener)生成密钥(下面列出的步骤以便于参考)并从GoDaddy获得证书。 (在GoDaddy网站的证书申请流程中粘贴CSR后,显示正确的CN)。购买的证书是通配符证书,以支持不同的子域。我使用AWS网站界面在ELB上应用了证书,但没有提示任何错误,但现在当我通过https访问网站时,我在浏览器中收到了SSL错误:
“本网站提供的安全证书是针对不同网站的地址发布的。”
调查https://www.sslshopper.com上的证书显示以下内容:
它声明没有任何常用名称匹配,但链中的通用名称是正确的(* .the-site.com)
我还可以发布创建私钥和CSR的步骤,但我没有收到任何迹象表明这些是不正确的。似乎CN * .the- site.com没有解析www.a.the-site.com。任何人都可以对此有所了解吗?
答案 0 :(得分:0)
@Michael - sqlbot是正确的,通配符证书只检查单个域。我将域名设置更改为不重定向到www.a.example.com,而是更改为a.example.com(删除www子域名),所有内容都按预期工作。