23

我读过一些关于 SSL 证书的内容,特别是我读过 SSL 证书“需要专用 IP 地址”。现在,我不确定这是什么意思;这是否意味着证书需要与用于正常 HTTP 通信的 IP 地址分开的专用 IP 地址,或者只是它不能与其他 SSL 证书共享 IP 地址?

澄清一下,我有一个带有专用 IP 地址的 VPS。VPS 托管了很多不同的站点,包括主站点的几个子域,但只有主站点和子域需要 SSL。我可以使用我当前的 IP 地址简单地为*.example.com购买 SSL 证书,还是需要获得一个与 VPS 上的其他站点分开的证书?或者更糟糕的是,我是否需要获得一个与服务器上的所有 HTTP 流量分开的服务器?请记住,其他站点都不需要 SSL。

感谢您对该主题的任何澄清。


编辑:我担心的一些来源:

http://symbiosis.bytemark.co.uk/docs/symbiosis.html#ch-ssl-hosting

是否需要有专用 IP 地址来安装 SSL 证书?

4

4 回答 4

36
  1. 没有“SSL证书”之类的东西。该术语具有误导性。X.509 证书可以出于不同目的(由其密钥使用和扩展密钥使用“属性”定义)颁发,特别是用于保护 SSL/TLS 会话。

  2. 证书不需要关于套接字、地址和端口的任何内容,因为证书是纯数据。

  3. 当使用 TLS 保护某些连接时,您通常使用证书来验证服务器(有时是客户端)。每个 IP/端口有一台服务器,因此通常服务器选择要使用的证书是没有问题的。

    HTTPS 是个例外——几个不同的域名可以引用一个 IP,而客户端(通常是浏览器)连接到同一个服务器以获得不同的域名。域名在请求中传递给服务器,该请求在TLS 握手之后进行。

    这就是问题所在 - Web 服务器不知道要出示哪个证书。为了解决这个问题,TLS 中添加了一个新的扩展,名为 SNI(服务器名称指示)。但是,并非所有客户端都支持它。所以一般来说,每个域的每个 IP/端口都有一个专用服务器是个好主意。换句话说,客户端可以使用 HTTPS 连接到的每个域都应该有自己的 IP 地址(或不同的端口,但这并不常见)。

于 2013-04-03T10:07:57.900 回答
5

SSL 证书不需要专用 IP 地址。SSL 证书存储一个所谓的公用名。浏览器将此通用名称解释为它们正在与之通信的服务器的 DNS 名称。如果公共名称与浏览器正在与之通信的服务器的 DNS 名称不匹配,浏览器将发出警告。

您可以获得所谓的通配符证书,该证书可用于某个域内的所有主机。

于 2013-04-03T09:52:15.653 回答
3

...跟进@Eugene 的回答,提供有关兼容性问题的更多信息...

根据namecheap.com 的此页面, SNI 不适用于:

  • Windows XP + 任何版本的 Internet Explorer (6,7,8,9)
  • Internet Explorer 6 或更早版本
  • Windows XP 上的 Safari
  • 黑莓浏览器
  • Windows Mobile 高达 6.5
  • 至少在 Series60 上适用于 Symbian 的诺基亚浏览器
  • 至少在 Series60 上适用于 Symbian 的 Opera Mobile

网站仍可通过 HTTPS 访问,但会出现证书不匹配错误。

因此,当我们进入 2016 年时,我会大胆地站出来说:“如果你无论如何都在构建一个现代网站(不支持旧浏览器),并且如果项目太小以至于它负担不起专用 IP 地址,你可能会依靠 SNI 没问题。” 当然,有成千上万的专家不同意这一点,但我们谈论的是实用,而不是完美。

于 2015-12-08T02:26:44.693 回答
0

ssl 证书公用名必须与域名匹配。您对 ip 地址没有任何要求,除非它是证书提供商或 http 服务器软件施加的限制。

编辑:查看网络,似乎谣言已经传播,因为 Apache 的 ssl 插件没有(至少在 2002 年没有)任何机制来使用基于主机名的不同证书。在这种情况下,您必须在两个不同的 IP 地址上运行两个不同的 Apache Web 服务器。

无论如何,在您的配置中,只使用一个 IP 应该没有任何问题,因为您不必使用两个不同的证书(因为您计划使用通配符证书)。

在花钱购买第二个 ip 或证书之前,我无论如何都会尝试使用自签名证书配置网络服务器。

编辑 2:参考 apache 文档:

http://httpd.apache.org/docs/2.2/vhosts/name-based.html

现在似乎(apache> = 2.2.12)它受支持

于 2013-04-03T09:50:22.227 回答