首页 文章

Apache有两个URL和两个不同的SSL证书

提问于
浏览
0

我会用一个例子问这个 - 我有一个设置,nginx,django,apache(nginx转发ssl请求到apache)

我有网站https://www.xyz.com,它有一个与之关联的ssl证书,客户端在连接时使用它 . 可以说,我有另一个域名www.abc.com,我想把它分配到与xyz.com相同的服务器上

也就是当用户在浏览器中输入https://www.abc.com/时,它应该显示与https://www.xyz.com/相同的网站 .

现在要做到这一点,我需要购买另一张ssl证书吗?如果我这样做,我如何更改http.conf文件以将此新证书用于另一个URL?

或者我可以使用其他任何方法吗?

4 回答

  • 1

    只要www.abc.com和www.xyz.com拥有不同的IP地址,您就可以从同一个httpd实例托管它们 . 您将需要两个证书(除非两个证书都是公共域的子域,并且您获得了通配符证书) . 将它们设置为两个基于IP的虚拟主机,具有相同的内容 .

    有关原因,请参见http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#vhosts .

    <VirtualHost 127.0.0.1:443>
        SSLEngine on
    
        SSLCertificateFile      /etc/ssl/www.abc.com.crt
        SSLCertificateKeyFile   /etc/ssl/www.abc.com.key
        # etc
    </VirtualHost>
    <VirtualHost 127.0.0.2:443>
        SSLEngine on
    
        SSLCertificateFile      /etc/ssl/www.xyz.com.crt
        SSLCertificateKeyFile   /etc/ssl/www.xyz.com.key
        # etc
    </VirtualHost>
    
  • 1

    你真的试过问谷歌吗?我的第一个点击之一是:http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
    在apache wiki上 .

    如果您有多个IP地址,我建议使用基于IP地址的SSL而不是基于名称的,因为较旧的客户端(XP上的IE)不支持SNI .

  • 1

    (我正在复制/粘贴我自己的答案的略微修改版本this question . 到目前为止,现有答案中没有提出的建议是使用多个主题替代名称 . )

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

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

    如果你可以't use SNI, you' d同时需要同一个证书对 www.abc.comwww.xyz.com 同时有效,这可以通过将两个DNS条目置于主题备用名称扩展名中,或者可能通过使用通配符来实现,如果模式为这两个主机是合适的(请注意,如果通配符用于两个不同的域而不是子域,则不太可能被接受) . 这两个选项可能比使用商业CA的两个不同证书更昂贵 .

  • 1

    我最终购买了两个域的单一多域证书(UCC) . 并修改了nginx配置,将两个站点定向到同一个Apache服务器 .

    因为我在Apache面前有nginx,所以我不需要更改http.conf配置 .

相关问题