apache2 如何在单个服务器中托管多个 SSL

apache2 如何在单个服务器中托管多个 SSL

我正在尝试在一台 Apache 服务器上获取 2 个 SSL 服务器,

一个是主站点,另一个是子域,

以下是 .conf 文件:

<VirtualHost *:443>

     SSLProxyEngine On
     ProxyPreserveHost On
     ServerName site.com

     SSLEngine on
     SSLCertificateFile /FOLDER/site.crt
     SSLCertificateKeyFile /FOLDER/site.key
     SSLCACertificateFile /FOLDER/site.ca-bundle


     Timeout 2400
     ProxyTimeout 2400
     ProxyBadHeader Ignore


     SetEnv proxy-initial-not-pooled
     SetEnv proxy-nokeepalive 1

     ProxyPass / http://10.0.0.101:8888/  retry=1 acquire=3000 timeout=600 Keepalive=On
     ProxyPassReverse / http://10.0.0.101:8888/

</VirtualHost>



<VirtualHost *:443>

     SSLProxyEngine On
     ProxyPreserveHost On
     ServerName sub.site.com

     SSLEngine on
     SSLCertificateFile /FOLDER/sub_Site.crt
     SSLCertificateKeyFile /FOLDER/sub_Site.key
     SSLCACertificateFile /FOLDER/sub_site.ca-bundle


     Timeout 2400
     ProxyTimeout 2400
     ProxyBadHeader Ignore


     SetEnv proxy-initial-not-pooled
     SetEnv proxy-nokeepalive 1

     ProxyPass / http://10.0.0.100:8888/  retry=1 acquire=3000 timeout=600 Keepalive=On
     ProxyPassReverse / http://10.0.0.100:8888/

</VirtualHost>

由于某种原因,主 SSL 最终从子域中选择了 SSL 证书,

有人能看出我哪里做错了吗?

答案1

我认为这没有什么区别,但也许可以将 ServerName 条目移到每个 VirtualHost 部分的顶部。

如果符合您的业务需求,您可以探索的另一个选项是使用具有每个 FQDN 的主题备用名称的 SSL 证书(有时称为“多域”证书)。Apache wiki 有更多信息关于 SAN 和通配符证书。

答案2

您使用的是哪个版本的 Apache?此配置看起来不错,与我使用的 Apache 2.4 类似。为了使其正常工作,客户端必须支持 SNI,所有当前版本的现代浏览器都支持 SNI。

相关内容