我目前有一个https://www.domain.com注册的SSL证书。 我没有注册https://domain.com ,我没有钱这样做。
由于SSL交换是在实际站点加载之前完成的,我不能简单地在.htacess中插入一个redirect,而客户端没有收到SSL警告。 无论如何,我可以确保所有的https://domain.com在SSL交换之前redirect到https://www.domain.com ? 也许直接在Apache服务器上或DNS中的东西?
主机名validation是客户端机制(如HTTPS规范RFC 2818第3.1节所述)。 在任何HTTP通信发生之前(特别是在任何redirect之前),客户端将检查证书对于它所请求的主机名是有效的。 Apacheredirect或DNS更改将不会有任何用处。
您只需要Web服务器即可显示对请求的主机名有效的证书。
一些证书可以对多个主机名有效,具有多个主题备用名称(SAN)DNS条目,例如domain.com和www.domain.com 。 有些authentication机构默认这样做,有些authentication机构需要支付额外的费用。
(通配符证书也可用于处理多个主机名,只要它们遵循正确的模式,如*.domain.com 。不幸的是, domain.com与*.domain.com不匹配,因为该点是该模式的一部分。某些通配证书将同时具有用于domain.com和*.domain.com的SAN,在这种情况下,将用于domain.com的SAN机制与通配符无关。)
您也可以使用服务器名称指示(SNI),并在该domain.com主机上有另外一个不同的证书( www.domain.com旁边的证书)。 不幸的是,某些客户不支持它(可能是旧的,但仍然存在),因为大多数CA颁发domain.com证书肯定会将www.domain.com自动包含在另一个SAN中。
无论哪种方式,如果你想能够提供https://domain.com (即使只是redirect),你必须得到一个新的证书(至less)。
解决您的问题,而不必购买第二张证书的唯一select是为* .domain.com购买通配符证书。
但是,我认为这样的证书比标准证书贵一点,而且你已经有一个证书用于你的域名,所以我没有办法在没有花钱的情况下得到你想要的东西。
顺便说一句:即使购买第二个证书不会“解决所有的麻烦,因为我假设你只有一个公共IP地址,因此你将不得不使用” 服务器名称指示 “(SNI),这是不支持在XP上的IE浏览器。