No Apache2 no ubuntu, tenho meu site ouvindo 80, e agora quero adicionar SSL. Existe uma maneira de habilitar o SSLEngine para a porta 443, para que eu não precise copiar todo o bloco VirtualHost?
Quando eu faço isso:
Listen 80
Listen 443
NameVirtualHost *
<VirtualHost *>
SSLEngine On
... a bunch more lines...
</VirtualHost>
Está ativando o SSLEngine para a porta 80. Existe uma maneira de usar apenas o bloco VirtualHost e ativar o SSLEngine apenas para a porta 443? Para que eu possa fazer algo assim?
Listen 80
Listen 443
NameVirtualHost *
<VirtualHost *>
<IfPort 443>
SSLEngine On
</IfPort>
... a bunch of lines I don't want to copy into another VirutalHost block...
</VirtualHost>
apache-2.2
mod-ssl
dar
fonte
fonte
Como mencionei em uma pergunta diferente no stackoverflow ( /programming/679383/do-i-have-to-duplicate-the-virtualhost-directives-for-port-80-and-443/52375167# 52375167 ):
Outra opção, em vez de usar,
Include
está usandoMacro
(para que você possa manter tudo em um arquivo).Primeiro ative o módulo macro:
Em seguida, coloque seu material compartilhado em uma macro e
use
em seus virtualhosts:As macros também podem aceitar parâmetros e serem definidas em outros arquivos incluídos; para que você possa usá-los um pouco como o Functions e salvar muita duplicação nos arquivos de configuração do Apache.
Veja aqui para mais detalhes:
https://httpd.apache.org/docs/2.4/mod/mod_macro.html
fonte
Você pode colocar as configurações de diretório em um
<Directory>
bloco fora de qualquer<VirtualHost>
bloco. Isso os aplicará em todos os hosts virtuais, mas apenas dentro do caminho especificado.fonte