Plusieurs sites par serveur Apache avec SSL indiquant un site incorrect avec HTTPS

J’ai un serveur Debian qui exécute plusieurs sites clients. La plupart d’entre eux n’exécutent pas SSL, l’access par HTTP est donc correct.

J’ai un client avec un certificate SSL et accéder à leur site via HTTPS convient également.

Le problème survient si vous essayez d’accéder à l’un des autres sites avec HTTPS que vous obtenez dirigé vers l’autre site disposant du certificate SSL.

Par exemple, disons que nous avons les sites suivants sur le serveur:

alpha.net bravo.net charlie.net (SSL) delta.net 

Donc, comme vous pouvez le voir, charlie est le seul avec SSL, et que vous vous rendiez sur http charlie.net ou https charlie.net, cela fonctionne bien.

http pour tous les autres sites est correct, mais si vous deviez aller sur https alpha.net, il vous sera initialement signalé une erreur de certificate invalide et vous permettra de continuer, mais alors que alpha.net est présent dans la barre d’adresse, le site charlie.net dans le navigateur.

J’ai fait des recherches sur SNI et comment, si d’autres sites utilisent le protocole SSL, je devrais les mettre tous sur des adresses IP spécifiques (autre chose dont j’ai besoin pour essayer de savoir comment procéder, mais je ne sais pas pourquoi). se passe ou comment je le résoudre.

Quelqu’un d’autre a-t-il déjà rencontré cela et comment l’avez-vous trouvé?

Merci beaucoup,

Rob

Cela n’a rien à voir avec SNI, car vous n’avez actuellement qu’un seul serveur HTTPS. Comme vous l’avez dit dans votre commentaire, ce qui se passe, c’est que le domaine alpha.net est résolu par l’adresse IP de votre serveur. Votre serveur Apache est configuré pour écouter les requêtes sur le port 443 sur cette adresse IP et pour diffuser le contenu de charlie.net à ces requêtes. (Et l’erreur de certificate signifie que le navigateur a remarqué la différence entre le nom de domaine présumé du certificate et le nom de domaine utilisé pour la demande.)

La redirection de HTTPS vers HTTP est probablement un problème plus important, car vous auriez besoin de certificates valides pour chaque domaine, afin de ne pas présenter un autre avertissement de sécurité à vos utilisateurs. Cela impliquerait de créer des hôtes virtuels pour alpha.net:443, etc., sur un serveur compatible SNI (c’est-à-dire les versions ultérieures d’Apache 2.2+ avec openssl), et d’append une redirection comme ceci:

 RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} 

Le moyen le plus simple de résoudre votre problème consiste probablement à utiliser une adresse IP différente pour charlie.net. Avec cette configuration, alpha.net (et ainsi de suite) n’aurait aucun moyen d’afficher le contenu d’un autre site.

Si vous avez plusieurs adresses IP sur votre serveur, utilisez-en une unique pour le site SSL, tous les sites non SSL partagent une autre adresse IP.

Comme SSL ne se soucie pas du domaine que vous visitez, il se soucie uniquement de savoir si le domaine actuel est approuvé à partir de la liste des domaines (Nom commun) qu’il reçoit de l’adresse IP.