У меня есть довольно большое определение VirtualHost, которое я не хочу дублировать, чтобы сайт также работал по HTTPS.
Вот что я хочу сделать:
<VirtualHost *>
ServerName example.com
<If port=443>
SSLEngine on
SSLCertificateFile ...
SSLCertificateKeyFile ...
SSLCertificateChainFile ...
</If>
(other config)
</VirtualHost>
Есть ли способ сделать это?
Я пропускаю какой-то другой способ не дублировать конфигурацию?
источник
SSLEngine On
в<If>
дастSSLEngine not allowed here
, поэтому предлагаемый вариант использования в начале этого ответа , к сожалению , не представляется возможным. Похоже, это связано с тем, что в этом разделе конфигурации может использоваться только «директивы, поддерживающие контекст каталога». (ref) иSSLEngine
естьserver config, virtual host
(ref) , а не каталог.Нет. Вы можете переместить большинство вещей в глобальный конфиг и наследовать его в VirtualHost.
источник
На это был дан ответ в другом вопросе. Используйте оператор «Включить». Работал как шарм для меня:
Служите http (порт 80) и https (порт 443) на том же VirtualHost
источник
Для виртуальных хостов SSL вы должны использовать второй порт
или вы должны использовать отдельные IP-адреса
В документах Apache SSL есть очень хорошее объяснение http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html.
Выполните поиск «Почему я не могу использовать SSL с виртуальными хостами на основе имен / не на основе IP?»
источник