保护具有cname记录的URL

时间:2012-05-02 01:37:56

标签: ssl dns cname

我的网站包含每个用户的子域名和通配符SSL证书

https://user1.mysite.com

https://user2.mysite.com

问题是有人可以设置cname记录,例如user1.theirsite.com - > user1.mysite.com并让它仍然使用https?

如果他们在服务器上安装SSL证书以保护连接,它会起作用吗?

由于

3 个答案:

答案 0 :(得分:13)

这项工作的最佳方式是,如果他们安排与您一起让您的SSL证书在 中包含他们的“别名”作为Subject Alternate Name扩展名X.509证书。

这是某些CDN在为客户端托管https网站时使用的方法 - 他们将一台服务器上托管的所有已知网站名称放在一个大型SSL证书中,然后客户端使用CNAME将他们的域名指向正确的CDN服务器。

答案 1 :(得分:12)

主机名和证书验证(实际上,检查SSL是否完全使用)完全由客户负责。

主机名验证将由客户端完成,如RFC 2818中所述,基于他们在其URL中请求的主机名。主机名DNS解析是基于CNAME条目还是其他任何内容都无关紧要。

如果用户在浏览器中输入https://user1.theirsite.com/,则目标网站上的证书应对user1.theirsite.com有效。

如果他们拥有自己的user1.theirsite.com服务器,与user1.mysite.com不同,那么DNS CNAME条目就没有意义。假设两个主机实际上是不同的,它们可以拥有自己的user1.theirsite.com有效证书,并重定向到https://user1.theirsite.com/。重定向也会在地址栏中显示。

如果您真的想拥有从user1.theirsite.comuser1.mysite.com的CNAME,他们可能会为您提供证书和私钥,以便您也可以使用服务器名称指示将其托管在您的网站上(假设您使用的是CNAME),假设相同的端口,当然还有相同的IP地址。这适用于支持SNI的客户。但是,他们给你的私钥会有一定的风险(通常不推荐)。

答案 2 :(得分:0)

以下设置和工作:

a.corp.com的DNS条目 - > CNAME b.corp2.com - >一个1.2.3.4

1.2.3.4的haproxy将提供a.corp.com的证书,并且该网站从网络服务器后端加载正常。

因此,在您的服务器上,您将需要user1.theirsite.com证书,它将起作用。