En Apache2 en ubuntu tengo mi sitio escuchando en 80, y ahora quiero agregar SSL. ¿Hay alguna manera de habilitar SSLEngine para el puerto 443 para que no tenga que copiar todo el bloque VirtualHost?
Cuando hago esto:
Listen 80
Listen 443
NameVirtualHost *
<VirtualHost *>
SSLEngine On
... a bunch more lines...
</VirtualHost>
Está activando SSLEngine para el puerto 80. ¿Hay alguna manera de usar solo un bloque VirtualHost y solo activar SSLEngine para el puerto 443? ¿Entonces puedo hacer algo como esto?
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
fuente
fuente
Como mencioné en una pregunta diferente sobre stackoverflow ( /programming/679383/do-i-have-to-duplicate-the-virtualhost-directives-for-port-80-and-443/52375167# 52375167 ):
Otra opción en lugar de usar
Include
es usarMacro
(para que pueda guardarlo todo en un solo archivo).Primero habilite el módulo macro:
Luego ponga sus cosas compartidas en una macro y
use
desde sus hosts virtuales:Las macros también pueden tomar parámetros y definirse en otros archivos que están incluidos; para que pueda usarlos un poco como Funciones y guardar muchas duplicaciones en sus archivos de configuración de Apache.
Vea aquí para más detalles:
https://httpd.apache.org/docs/2.4/mod/mod_macro.html
fuente
Puede colocar la configuración del directorio en un
<Directory>
bloque fuera de cualquier<VirtualHost>
bloque. Eso los aplicará a todos los hosts virtuales, pero solo dentro de la ruta especificada.fuente