Jak*_*ake 14 ssl virtualhost apache-2.2
我有一个相当大的 VirtualHost 定义,我不想复制它,这样站点也将通过 HTTPS 运行。
这是我想要做的:
<VirtualHost *>
ServerName example.com
<If port=443>
SSLEngine on
SSLCertificateFile ...
SSLCertificateKeyFile ...
SSLCertificateChainFile ...
</If>
(other config)
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
我是否缺少其他不复制配置的方法?
Tyr*_*ael 12
Apache(2.2) 的当前稳定版本没有该功能,但 2.4 确实有IF 指令。
您现在必须创建两个 VirtualHosts,但您可以通过环境或 apache 全局变量设置一些内容,并在您的虚拟主机配置中使用它(例如设置 documentroot)。这样,如果您想更改它,只需进行一行修改即可。
当然,你可以使用 include 来做这样的事情:
<VirtualHost *:80>
include /etc/apache2/vhost.conf.d/site1
</VirtualHost>
<VirtualHost *:443>
include /etc/apache2/vhost.conf.d/site1
include /etc/apache2/vhost.conf.d/site1-ssl
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
ps:SNI 将在 IPv6 适配前几年成为主流。假设您在受支持的操作系统上,所有主流浏览器都已经支持它。
编辑:正如 fooquency 发现的那样,您不能将 SSLEngine On 放在 If 块中,所以我的答案是错误的。
| 归档时间: |
|
| 查看次数: |
31803 次 |
| 最近记录: |