如何将https://example.com转发到AWS ELB

我已经购买了一个域example.com,并将其托pipe在AWS Elastic Beanstalk上。 为了支持HTTPS,我从* .example.com的AWS证书pipe理器颁发了通配符证书,并将其分配给EB实例和ELB。 自从我在Godaddy购买域名后,我还在Godaddy DNS上添加了CNAME通配符(*)DNS条目,并给出了ELB AWS名称的目标值。

这样做适用于子域名,我可以打到https anystring.example.com并转到我的EB环境的索引页面。 但问题是,我不能使用https example.com(没有子域)去环境。 它没有find域项。 我明白为什么,但不知道该怎么做来解决它。

我试着添加一个新的CNAME条目:
名称: @
价值:ELB AWS价值
但Godaddy给了我错误的logging已经存在。 我search了一下,发现只要有一个@条目存在,我不能再添加一条。

我search了更多,做了更多的事情,以取得进展:1.我添加了一个CNAME www条目,并在目标中分配了ELB AWS名称,所以现在我可以打到https www.example.com并转到env。 索引页面。 2.我添加了一个域(forward @ to https www.example.com),所以只需在URL中inputexample.com,然后转发到https www.example.com

但是我仍然无法使用https example.com进入索引页面

有什么build议?

您不能在根域(example.com)使用CNAME,只能在子域中使用。 这是由于DNS标准/devise。 阅读这个问题/答案 。

解决scheme是将您的DNS移动到AWS Route 53.成本相对较小,并且从DNS引用ELB是一个更好的方法。 Route53给你的别名logging,让你指向您的根域(即没有www)在ELB。

为你的域设置路由53,然后在Route53给你的名字服务器指向GoDaddy。 这里有说明 。

一些资源给你。 – 在EB中使用ELB – http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-elb.html

“example.com”和“ .example.com”在SSLvalidation方面是完全不同的名称,这是由于域语法validation如何工作以及点的重要性。 如果您获得通配符证书( .example.com),则仅对包含“example.com”之前的单个(且仅有一个)子域的请求有效; 它对顶点域不是有效的。 这同样适用于嵌套的子域名,例如abexample.com不适合* .example.com。

要达到目标,您应该在CommonName字段中购买包含apex域和通配符名称的证书。