Dans Apache2 sur Ubuntu, mon site écoute sur 80, et maintenant je veux ajouter SSL. Existe-t-il un moyen d'activer le SSLEngine pour le port 443 afin que je n'aie pas à copier l'intégralité du bloc VirtualHost?
Quand je fais ça:
Listen 80
Listen 443
NameVirtualHost *
<VirtualHost *>
SSLEngine On
... a bunch more lines...
</VirtualHost>
Il active le SSLEngine pour le port 80. Existe-t-il un moyen d'utiliser uniquement le bloc VirtualHost et de n'activer le SSLEngine que pour le port 443? Je peux donc faire quelque chose comme ça?
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>
Comme je l'ai mentionné sur une autre question sur stackoverflow ( /programming/679383/do-i-have-to-duplicate-the-virtualhost-directives-for-port-80-and-443/52375167# 52375167 ):
Une autre option au lieu d'utiliser
Include
est d'utiliserMacro
(vous pouvez donc tout garder dans un seul fichier).Activez d'abord le module macro:
Ensuite, mettez vos trucs partagés dans une macro et
use
à partir de vos hôtes virtuels:Les macros peuvent également prendre des paramètres et être définies dans d'autres fichiers inclus; afin que vous puissiez les utiliser un peu comme les fonctions et économiser beaucoup de duplication dans vos fichiers de configuration Apache.
Voir ici pour plus de détails:
https://httpd.apache.org/docs/2.4/mod/mod_macro.html
la source
Vous pouvez placer les paramètres de répertoire dans un
<Directory>
bloc en dehors de tout<VirtualHost>
bloc. Cela les appliquera à tous les hôtes virtuels, mais uniquement à l'intérieur du chemin spécifié.la source