如何对使用相同 IP 地址的多个站点使用 SSL?

How to use SSL for many sites using same IP address?

我有一台 Apache 服务器和一个 IP 地址。我想在每个域别名上为 SSL 使用 SSL 通配符。但是我在某处读到每个站点都需要不同的 IP 地址。

有解决办法吗?我能否为多个使用相同 IP 地址的站点使用 SSL?

默认情况下,所有新版本的 Apache 都支持服务器名称标识 (SNI)。然而,让它工作的诀窍是 IP 地址需要与端口分配一起指定:

NameVirtualHost 192.168.0.10:443

然后为每个站点指定 IP 地址:

VirtualHost 192.168.0.10:443

在我的服务器上,我将 SSL 站点封装为:

<IfModule mod_ssl.c>
    <VirtualHost 92.168.0.10:443>
        DocumentRoot /var/www/html/alias.example.com
        ServerName some.site.info
        <Directory "/var/www/html/alias.example.com">
            allow from all
            Options None
        </Directory>
        SSLCertificateFile /var/www/certs/example.com.crt
        SSLCertificateKeyFile /var/www/certs/example.com.key.nopass
        SSLCACertificateFile /var/www/certs/intermediate.crt
        SSLEngine on
    </VirtualHost>
</IfModule>

已从密钥文件中删除密码以简化配置。但是,为了保护证书文件,它们存储在服务器的文档根目录下。

应将其他网站添加到 "IfModule" 包装器中。