【问题标题】:Different SSL-certificates for different parts of site网站不同部分的不同 SSL 证书
【发布时间】:2011-04-03 19:47:45
【问题描述】:

我在 example.com 上有一个站点,它从 s.example.com(亚马逊云端发行版)加载其所有静态组件。

现在我想让 example.com 的一些页面使用 https,所以我想我会为 example.com 购买 ssl 证书,但是由于页面从 s.example.com 加载图像和其他内容 https由于某些组件未加密,因此会中断。

是否可以为 s.example.com 购买第二个证书?我问的原因是因为购买两个单域证书比购买通配符证书便宜得多。

【问题讨论】:

    标签: ssl https amazon-s3 amazon-cloudfront


    【解决方案1】:

    这取决于两个主机是否运行在相同的服务器和IP地址(使用虚拟主机)上。

    简单的方法是能够在两个不同的 IP 地址(可能是同一台机器)上托管 example.coms.example.com,在这种情况下,您可以为每个地址配置不同的证书。

    如果您被限制为两个名称只有一个 IP 地址(和端口),如果您想使用两个不同的证书,则需要使用 Server Name Indication (SNI) 扩展,它是相对较新的(并且可能并非所有浏览器都支持,但它似乎适用于最近的浏览器)。

    如果您不能使用 SNI,则需要相同的证书同时对 example.coms.example.com 有效,这可以通过将两个 DNS 条目放在主题备用名称中来实现扩展名,或者如果两个主机的模式合适,也可以使用通配符。这两个选项可能比使用商业 CA 的两个不同证书更昂贵。

    之后,就像@ring0 已经说过的那样,使用https:// 链接链接到页面内容(img...)。

    【讨论】:

      【解决方案2】:

      各种(子)域的各种证书的问题是您必须拥有一个域的专用 IP。这是由于 SSL 设计 - 建立第一个 SSL 连接并在此时验证证书。服务器此时不知道要出示哪个证书。只有在成功握手后,才会发送带有域名的 HTTP 请求。

      因此,如果您希望覆盖两个域并且它们都位于相同的 IP 地址上,则必须购买通配符证书。

      【讨论】:

        【解决方案3】:

        只要页面内的所有组件都是 http 或全部是 https,您应该能够运行具有不同 https:// 的页面,而不会收到来自浏览器的警告。

        <img src="https://example.com/a.jpg"/>
        <img src="https://s.example.com/b.jpg"/>
        

        您必须使各种证书保持最新。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-07-03
          • 2020-08-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多