不带 www 的域名的 SSL 证书

不带 www 的域名的 SSL 证书

我目前有一个注册于https://www.domain.com. 我没有注册https://domain.com但我没有钱做这件事。

由于 SSL 交换是在实际网站加载之前完成的,因此我无法简单地在 .htacess 中放置重定向,否则客户端会收到 SSL 警告。有什么办法可以确保所有https://domain.com重定向至https://www.domain.com在 SSL 交换之前?可能是直接在 Apache 服务器上,或者在 DNS 中?

答案1

主机名验证是一种客户端机制(如 HTTPS 规范 RFC 2818 第 3.1 节中所述)。客户端将在发生任何 HTTP 流量之前(特别是在任何重定向之前)检查证书是否对其请求的主机名有效。Apache 重定向或 DNS 更改将不起作用。

您只需要 Web 服务器提供对所请求的主机名有效的证书。

某些证书可以对多个主机名有效,因为它们具有多个主题备用名称 (SAN) DNS 条目,例如domain.comwww.domain.com。某些 CA 默认这样做,某些则需要额外付费。

(通配符证书还可用于处理多个主机名,前提是它们遵循正确的模式,例如*.domain.com。不幸的是,domain.com无法与匹配,*.domain.com因为点是模式的一部分。一些通配符证书将同时具有和的 SAN domain.com*.domain.com在这种情况下,将使用 的 SAN 机制domain.com,与通配符无关。)

您还可以使用服务器名称指示 (SNI),并在该主机上为 颁发另一个不同的证书domain.com(在 的证书旁边www.domain.com)。不幸的是,某些客户端(可能是旧的,但它们仍然存在)不支持它,而且它肯定是没有意义的,因为大多数为 颁发证书的 CAdomain.com肯定会www.domain.com自动包含在另一个 SAN 中。

无论哪种方式,如果您希望能够提供服务https://domain.com(即使只是为了重定向),您就必须获得一个有效的新证书(至少)。

答案2

无需购买第二个证书即可解决问题的唯一选择是购买 *.domain.com 的通配符证书。

但我认为这种证书比标准证书要贵一些,而且您的域名已经有一个证书,因此我看不出有什么方法可以在不再次花钱的情况下获得您想要的东西。

顺便说一句:即使购买第二个证书也无法解决您的所有麻烦,因为我假设您只有一个公共 IP 地址,因此您必须使用“服务器名称指示“(SNI)在 XP 上的 IE 中不受支持。

相关内容