Apache 上的多个 SSL 证书

use*_*994 4 ssl ssl-certificate apache-2.2

我知道如果您想在 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 上

这样的设置可行吗?如果是这样,任何有关虚拟主机配置的示例?

任何帮助,将不胜感激!

fre*_*eit 6

为不同的 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>
Run Code Online (Sandbox Code Playgroud)