每个子域都需要自己的SSL证书吗?


41

我正在创建一个将持续存在的websocket服务器ws.mysite.example。我希望Web套接字服务器经过SSL加密以及domain.exampleSSL加密。我需要为创建的每个子域购买新证书吗?我创建的每个子域都需要专用的IP地址吗?我可能会有多个子域。

我正在使用在Ubuntu上运行的NGINX和Gunicorn。

Answers:


44

我将分两个步骤进行回答...

每个子域都需要SSL证书吗?

是和否,这取决于。例如,您的标准SSL证书将用于单个域www.domain.example。除了标准的单域证书之外,您还可以使用其他类型的证书:通配符和多域证书。

  • 一个通配符证书会发出类似的东西*.domain.example和客户端将其视为有效的任何域与末端domain.example,如www.domain.examplews.domain.example

  • 一个多域证书的有效期为域名的预定义列表。它通过使用证书的“使用者备用名称”字段来执行此操作。例如,您可以告诉CA您想要针对domain.example和的多域证书ws.mysite.example。这将允许将其用于两个域名。

如果这些选项都不适合您,那么您将需要具有两个不同的SSL证书。

我需要每个子域专用的IP吗?

同样,这是一个是与否...这全都取决于您的Web /应用程序服务器。我是Windows专家,所以我将以IIS示例为答。

  • 如果您正在运行IIS7或更早版本的IIS7,则必须将SSL证书绑定到IP,并且不能将多个证书分配给单个IP。如果您为每个子域使用专用的SSL证书,则这将导致每个子域需要一个不同的IP。如果您使用的是多域证书或通配符证书,那么您就可以摆脱单一IP,因为您一开始只有一个SSL证书。

  • 如果您运行的是IIS8或更高版本,则同样适用。但是,IIS8 +包含对称为服务器名称指示(SNI)的支持。SNI允许您将SSL证书绑定到主机名,而不是IP。因此,用于发出请求的主机名(服务器名称)用于指示IIS应该用于该请求的SSL证书。

  • 如果使用单个IP,则可以配置网站以响应对特定主机名的请求。

我知道Apache和Tomcat也都支持SNI,但我对它们还不够熟悉,以至于不知道哪些版本支持SNI。

底线

根据您的应用程序/ Web服务器以及您能够获得哪种类型的SSL证书,将决定您的选择。


我在Ubuntu上使用gunicorn和nginx。
user974407 2014年

在这种情况下,只要OpenSSL(对于nginx)符合SNI支持,SNI就应该可用。按照GomoX答案中的链接。
pkeenan 2014年

一些单个子域证书列出了替代的主域,因此您可能会发现可以在一个IP地址上的一个证书上执行www.domain.com和domain.com。在考虑SNI时,请谨慎考虑您的目标受众:XP上的IE不支持它,这会对某些企业用户产生影响,某些旧的移动浏览器(如股票Android版本至少不低于2.3.5)也不需要考虑,您需要考虑如果您定位到移动设备(此处有很多运行旧版本的Android设备)。
David Spillett 2014年

@pkeenan -这将是一件好事,如果答案更新,以反映技术的功能,支持主机名和域名主机名不- helpdesk.ssls.com/hc/en-us/articles/...
动机

>客户端会将其视为对任何以“ domain.com”结尾的域有效,例如“ www.domain.com”或“ ws.domain.com”。这使我相信对于也是有效的abc.def.domain.com,也是这样吗?
杰夫

7

您可以获得每个子域的证书,多个子域证书或通配符证书(用于*.yoursite.example)。

但是,它们通常比常规证书花费更多,并且由于您共享一个证书,从安全角度来看,它们通常不是最佳选择,除非您托管的anything.mydomain.example应用程序是唯一可行的选择。

如果您具有支持SNI的Web服务器,则也不需要多个IP地址。这就是说,SNI仅在现代浏览器中受支持(IE6及以下版本将无法使用)。Nginx和Apache的最新版本透明地支持SNI(只需添加启用SSL的虚拟主机)。


从安全角度来看,“不是最佳选择”是什么意思?
动机

4
为您的所有主机共享的单个证书会将对证书的任何破坏转化为域级别的安全威胁,而不仅仅是影响证书所附加的任何子域。例如,用于WordPress安装的www.yoursite.com所使用的证书将与安全的信用卡处理应用程序pays.yoursite.com所使用的证书相同。如果第一个泄漏,则第二个泄漏。
GomoX '16

0

您可能需要为每个子域单独使用一个证书,也可以购买通配符证书(*.domain.example)-价格更高,但是如果您要托管大量子域,这是有道理的。

关于IP,这取决于您如何设置服务器。您可以使用主机名规则从同一IP为多个站点提供服务,也可以为每个站点使用唯一的IP。两种方法都有优点和缺点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.