Apache2 virtualhosts options SSL
Bonjour,
J'ai un serveur avec 1 virtualhost configuré pour le SSL.
Je veux proposer des options de configuration SSL spécifiques pour le vhost.
Ce que je ne comprends pas, c'est que ces options spécifiques sur le vhost ne sont pas prises en compte; chaque fois, ce sont les options du site "default" qui sont prises en compte, et non les options particulières de mon virtualhost.
Exemple:
/etc/apache2/sites-available/default :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <VirtualHost 192.168.10.239:443>
ServerAdmin webmaster@localhost
SSLEngine On
DocumentRoot /var/www/
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/ssl.error.log
CustomLog /var/log/apache2/ssl.access.log combined
</VirtualHost> |
/etc/apache2/sites-available/mickey.dev.local :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <VirtualHost 192.168.10.239:443>
ServerAdmin webmaster@localhost
ServerName mickey.dev.local
SSLEngine On
SSLVerifyClient optional
SSLVerifyDepth 2
SSLCACertificateFile /etc/apache2/ssl/users.crt
SSLOptions +ExportCertData
DocumentRoot /home/mickey/site/
<Directory /home/mickey/site/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/mickey.ssl.error.log
CustomLog /var/log/apache2/mickey.ssl.access.log combined
</VirtualHost> |
Si je vais sur mickey.dev.local, les options SSL spécifiques a sa conf ne sont pas prises en compte.
Bref je ne comprends pas.
Suite Apache2 virtualhosts options SSL
Merci pour ta réponse;
Je viens d'ajouter le servername au default mais çà ne change rien.
Voici les essais complets que j'ai faits :
2 Vhosts + 1 default :
/etc/apache2/sites-available/default :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| NameVirtualHost 192.168.10.239:80
NameVirtualHost 192.168.10.239:443
<VirtualHost 192.168.10.239:80>
ServerAdmin webmaster@localhost
ServerName ipmickey.dev.local
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
<VirtualHost 192.168.10.239:443>
ServerAdmin webmaster@localhost
ServerName ipmickey.default.dev.local
SSLEngine On
DocumentRoot /var/www/
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/ssl.error.log
CustomLog /var/log/apache2/ssl.access.log combined
</VirtualHost> |
/etc/apache2/sites-available/mickey.dev.local :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| <VirtualHost 192.168.10.239:80>
ServerAdmin webmaster@localhost
ServerName mickey.dev.local
DocumentRoot /home/mickey/site/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/mickey/site/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/mickey.error.log
LogLevel warn
CustomLog /var/log/apache2/mickey.access.log combined
ServerSignature On
</VirtualHost>
<VirtualHost 192.168.10.239:443>
ServerAdmin webmaster@localhost
ServerName mickey.dev.local
SSLEngine On
SSLVerifyClient optional
SSLVerifyDepth 2
SSLCACertificateFile /etc/apache2/ssl/users.crt
SSLOptions +ExportCertData
DocumentRoot /home/mickey/site/
<Directory /home/mickey/site/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/mickey.ssl.error.log
CustomLog /var/log/apache2/mickey.ssl.access.log combined
</VirtualHost> |
/etc/apache2/sites-available/donald.dev.local :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <VirtualHost 192.168.10.239:80>
ServerAdmin webmaster@localhost
ServerName donald.dev.local
DocumentRoot /home/donald/site/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/donald/site/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/donald.error.log
LogLevel warn
CustomLog /var/log/apache2/donald.access.log combined
ServerSignature On
</VirtualHost>
<VirtualHost 192.168.10.239:443>
ServerAdmin webmaster@localhost
ServerName donald.dev.local
SSLEngine On
DocumentRoot /home/donald/site/
<Directory /home/donald/site/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/donald.ssl.error.log
CustomLog /var/log/apache2/donald.ssl.access.log combined
</VirtualHost> |
Des options SSL spécifiques (en gras italique) devraient s'appliquer à mickey.dev.local .
J'ai remarqué sur si je mets ces options dans default, elles s'appliquent a l'ensemble des sites (ip, mickey.dev.local, et donald.dev.local).
Si j'enlève intégralement la directive <VirtualHost 192.168.10.239:443> dans le vhost default, c'est celle de /etc/apache2/sites-available/donald.dev.local qui prévaut (sans doute parce qu'alphabétiquement elle précède /etc/apache2/sites-available/mickey.dev.local ??
Bref dans tous les cas, il semble qu'il y ait une configuration "maitresse" qui soit systématiquement prioritaire sur les configurations de tous les autres vhosts. 8O
Suite Apache2 virtualhosts options SSL
Ben je fais mes tests avec les urls correspondant aux vhosts:
https://donald.dev.local
https://mickey.dev.local
https://192.168.10.239
Les directives spécifiques que je veux voir appliquées à mickey.dev.local uniquement, à savoir
SSLVerifyClient optional
SSLVerifyDepth 2
SSLCACertificateFile /etc/apache2/ssl/users.crt
SSLOptions +ExportCertData
servent à identifier le client via un token usb; après identification du token, çà me permet de récupérer les infos contenues dans la variable d'environnement $_SERVER["SSL_CLIENT_CERT"].
Je veux cependant que cette identification par token ne s'applique qu'à un seul vhost.
Or soit il s'applique a tous (en mettant les directives dans default), soit a aucun.
Suite Apache2 virtualhosts options SSL
Si ils sont pris en compte, je vois bien le document_root (via phpinfos).
J'ai bien ajouté le servername 192.168.10.239 dans default, comme tu le préconises, mais ca ne change rien.
En fait, je peux même vider default de son contenu pour ne garder que
NameVirtualHost 192.168.10.239:80
NameVirtualHost 192.168.10.239:443
Dans ce cas, si je me connecte sur l'IP 192.168.10.239, je tombe sur le vhost donald.dev.local (document_root: /home/donald/site/)
Et dans ce cas, si je mets dans /etc/apache2/sites-available/donald.dev.local les directives
SSLVerifyClient optional
SSLVerifyDepth 2
SSLCACertificateFile /etc/apache2/ssl/users.crt
SSLOptions +ExportCertData
Elles s'appliqueront aussi à mickey.dev.local.
En revanche, si je mets ces directives dans mickey.dev.local, elles ne seront appliquées à aucun des deux vhosts.
Pour résumer, il semble le premier vhost (par ordre alphabétique: soit dans mon cas default, puis donald, puis mickey) impose ses directives SSL à tous les autres.
:aie: