我有两个站点需要不同的域,但都必须使用运行Apache httpd的同一台服务器,并使用SSL。 这是一个例子:
每个域都有不同的文档根path。 SNI不是一种select,但我有* .example.com的通配符SSL证书。 分配第二个IP不是一个选项。
如何将Apacheconfiguration为使用端口443上的任何通信的通配符SSL证书,然后在SSL握手之后继续使用基于名称的虚拟主机?
在nginx中,它可能是一个基于域名的if-block,并且具有SSL之外的configuration。 有没有相当于Apache 2.2的工作?
编辑: SNI不是由我的客户请求的选项,由于减less浏览器支持相比,替代。 我正在寻找一些方法来使用旧标准来提供证书,然后像在端口80上应用一样,在ssl端口上应用经典的VHost定义。
如果你有一个通配符SSL证书,这意味着你可以在你的两个虚拟主机的configuration文件中使用这个证书。
您可以简单地在vhostconfiguration文件中给他们:
<VirtualHost *:443> ServerName www.example.com SSLCertificateFile /path/to/file.crt SSLCertificateKeyFile /path/to/file.key ... </VirtualHost> <VirtualHost *:443> ServerName beta.example.com SSLCertificateFile /path/to/file.crt SSLCertificateKeyFile /path/to/file.key ... </VirtualHost>
不要忘记:虚拟主机标识将基于Host:请求标头,而不是在SNI中。 SNI将仅用于ssl握手之前的虚拟主机标识。 在SSL握手的SNI部分和HTTP部分中使用不同的虚拟主机是完全可以的,尽pipe这些非同寻常的查询会在apache日志中引起一些警告。