Bonjour à tous,

je rencontre actuellement un problème au niveau de la configuration d'un domaine et de plusieurs sous-domaines.

Domaine est sur IP1
Les sous domaines sont sur IP2 qui est sur le même serveur, jusque là tout fonctionne

Ensuite pour des raisons de sécurité j'ai décidé de tout passer sous SSL, étant limité à 5 noms par certif et ayant un besoin exponentiel de vhost j'attribue 5 vhost à une nouvelle IP. Du coup j'ai actuellement cette configuration :

IP1 : Certificat 1 + Domaine
IP2 : Certificat 2 + 5 vhosts de Domaine

Et là bah... à chaque fois le résultat change et rencontre un de ces 3 cas :

1. Tout se passe bien (5% des cas)
2. Une erreur indiquant que le certificat utilisé est celui du site principal est affiché (90% des cas)
2. 1. Quand on force l'accès au site le certificat est reconnu (50% des cas)
2. 2. Quand on force l'accès au site le certificat n'est pas reconnu et on est redirigé vers le site principal (comportement provenant d'IP1 pour les vhosts inexistants)

Autant vous dire que n'ayant jamais vu ça avant je suis assez dépité et perdu. Voici la configuration utilisée :

Bind, fichier zone :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
$TTL 3600
domain.tld. IN SOA ns1.domain.tld. contact.domain.tld. (
        2016062106; Serial
        7200 ; Refresh
        3600 ; Retry
        1209600 ; Expire
        43200 ) ;  Negative Cache TTL
 
@       IN NS ns1.domain.tld.
@       IN NS ns2.domain.tld.
 
@ IN A IP1
* IN A IP1
 
ns1 IN A IP1
ns2 IN A 213.251.188.141
 
cdn1.domain.tld. IN A IP2
cdn2.domain.tld. IN A cdn1.domain.tld.
cdn3.domain.tld. IN A cdn1.domain.tld.
cdn4.domain.tld. IN A cdn1.domain.tld.
cdn5.domain.tld. IN A cdn1.domain.tld.
 
domain.tld. IN NS ns1.domain.tld.
 
pop     10800 IN CNAME access.mail.gandi.net.
webmail 10800 IN CNAME agent.mail.gandi.net.
smtp    10800 IN CNAME relay.mail.gandi.net.
imap    10800 IN CNAME access.mail.gandi.net.
@       10800 IN MX 10 spool.mail.gandi.net.
@       10800 IN MX 50 fb.mail.gandi.net.
@ 10800 IN TXT "v=spf1 ip4:217.70.176.0/20 ip6:2001:4b98:c::/48 ptr ?all"
 
ownercheck TXT "********"
Apache, fichier de config du domaine et des vhosts
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
#
#   HTTP(S)
#
<VirtualHost IP1:443>
  ServerName domain.tld
 
  DocumentRoot /var/www/domain/http/public/
 
  SSLEngine on
  SSLProtocol all -SSLv2 -SSLv3
  SSLCipherSuite ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL
  SSLCertificateFile /var/www/.certs/domain/domain.crt
  SSLCertificateKeyFile /var/www/.certs/domain/domain.key
  SSLCertificateChainFile /var/www/.certs/root.crt
 
  <Directory /var/www/domain/http/public/>
    Options -Indexes +FollowSymLinks
    AllowOverride All
  </Directory>
 
  ErrorLog /var/log/apache2/domain.http.error.log
  CustomLog /var/log/apache2/domain.http.access.log combined
</VirtualHost>
 
#
# CDN IP2
#
<VirtualHost IP2:443>
  ServerName cdn1.domain.tld
  ServerAlias  cdn1.domain.tld cdn2.domain.tld cdn3.domain.tld cdn4.domain.tld cdn5.domain.tld
 
  DocumentRoot /var/www/domain/cdn/
 
  SSLEngine on
  SSLProtocol all -SSLv2 -SSLv3
  SSLCipherSuite ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL
  SSLCertificateFile /var/www/.certs/domain/cdn-IP2.crt
  SSLCertificateKeyFile /var/www/.certs/domain/cdn-IP2.key
  SSLCertificateChainFile /var/www/.certs/root.crt
 
  <Directory /var/www/domain/cdn/>
    Options -Indexes +FollowSymLinks
    AllowOverride All
  </Directory>
 
  RewriteEngine On
  RewriteCond %{HTTP_REFERER} !^$
  RewriteCond %{HTTP_REFERER} !^https://domain.tld [NC]
  RewriteRule \.(jpg|jpeg|png|gif)$ https://domain.tld/hotlinking.png [NC,R,L]
 
  ErrorLog /var/log/apache2/domain.cdn.error.log
  CustomLog /var/log/apache2/domain.cdn.access.log combined
</VirtualHost>
Lors du démarrage Apache me demande bien les clés pour chaque certificat, signe qu'ils sont chargés correctement.

Je sais qu'il est impossible d'effectuer ce type de configuration sur une même IP, mais normalement sur deux IP distinctes bind est supposé dispatcher en amont sur la bonne IP, du coup je comprend pas du tout pourquoi j'ai ces problèmes. Je pense que j'ai du oublier une étape quelques part, mais quoi?