Apache 上的多个 SSL 证书

Apache 上的多个 SSL 证书

我知道如果你想在 Apache 中使用多个 SSL 证书,你需要多个 IP 地址。假设我的 VPS 上有 2 个 IP(让我们给它们命名1.1.1.12.2.2.2),我想知道以下设置是否可行:

domain1.com 将会1.1.1.1并使用签名的 SSL 证书(来自 Verisign 等提供商)

domain2.com、domain3.com、.. 将位于2.2.2.2并共享自签名证书...

换句话说,一个域名需要自己的签名证书,因为它必须处理金融交易等,所以它在第一个 IP 上是“单独的”。其他域名只需要一个自签名证书,因为它只用于他们的管理区域,我不介意警告,所以它们都会在第二个 IP 上

这样的设置可行吗?如果可以,能提供虚拟主机配置的示例吗?

任何帮助,将不胜感激!

答案1

为不同的 IP 地址获取不同的证书非常简单;只需将 SSL 证书内容放入每个虚拟主机中即可。

目前,在单个 IP 上拥有多个虚拟主机实际上行不通。有些技术将来可能会实现这一点,但用户群体并没有运行可以做到这一点的浏览器。用户代理(浏览器)建立 SSL 连接并验证 SSL 连接,然后告诉服务器它要连接到哪个主机。您确实需要为每个 SSL 虚拟主机分配一个单独的 IP。

<VirtualHost 1.1.1.1:443>
        ServerName foo
        DocumentRoot /var/www/foo
        CustomLog /var/log/httpd/foo.ssl_access_log combined
        ErrorLog /var/log/httpd/foo.ssl_error_log

        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
        SSLCertificateFile /etc/pki/tls/certs/foo.crt
        SSLCertificateKeyFile /etc/pki/tls/private/foo.key
</VirtualHost>

<VirtualHost 2.2.2.2:443>
        ServerName bar
        DocumentRoot /var/www/bar
        CustomLog /var/log/httpd/bar.ssl_access_log combined
        ErrorLog /var/log/httpd/bar.ssl_error_log

        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
        SSLCertificateFile /etc/pki/tls/certs/bar.crt
        SSLCertificateKeyFile /etc/pki/tls/private/bar.key
</VirtualHost>

答案2

正如 freiheit 已经提到的,有一种新方法,可以
在单个 IP 上设置具有不同 SSL 证书的 vhost。但客户端的支持仍然不完整。

它被称为SNI(服务器名称指示)值得一读。

此致...

相关内容