Apache:条件SSLCertificateFile取决于域?

时间:2011-12-05 21:23:13

标签: apache https virtualhost httpd.conf

我正在运行一个可以从不同域访问的多语言网络商店,这会导致不同的语言。

apache配置非常复杂,我希望与所有商店共享一个文件。我有这个到位,直到我不得不引入SSL。 说到apache和SSL证书,我需要做类似的事情:

SetEnv is_es 0<br>
SetEnvIfNoCase Host .*es is_es 1<br>
SSLCertificateFile  /etc/ssl/certs/spanish.server.crt env=is_es<br>

这显然是不可能的,阿帕奇告诉我:

 <i>SSLCertificateFile takes one argument, SSL Server Certificate file (`/path/to/file' - PEM or DER encoded)</i>

我想知道是否有任何解决方法。我的目标是避免使用相同配置的不同副本,并且必须手动传播我想要进行的任何更改。 它托管在专用服务器上,因此我可以自由对设置进行任何更改。

1 个答案:

答案 0 :(得分:1)

当您使用https连接时,Host标头位于SSL封装内,因此在检查虚拟主机的主机名之前需要完整的SSL握手。

您应该使用SAN (Subject Alternative Names)获取SSL证书,这将允许多个主机名的单个证书。 (或通配符证书)

所有主流浏览器都支持它:

您可以从主要CA获得此证书之一: