Comment éviter https: // être accessible à partir de domaines sans certificat?

J'ai cette configuration

Server version: Apache/2.2.22 (Ubuntu) OpenSSL 1.0.1c 10 May 2012 

Une adresse IP avec plusieurs domaines qui y sont connectés. Par exemple, j'ai un certificat SSL signé et, par conséquent, example1.com est accessible via https://secure.example1.com

Ceci est également vrai pour example2.com (signé avec un certificat valide et accessible via https://secure.example2.com )

Toutefois, example3.com n'a PAS de certificats SSL lié et ne doit pas être accessible via https (port SSL 443). Mais, lorsqu'un utilisateur passe à https://example3.com un avertissement s'affiche. Au Chrome, cela ressemble à ça

Vous avez essayé d'accéder à example3.com, mais vous avez réellement atteint un serveur identifiant lui-même comme secure.example1.com. Cela peut être dû à une mauvaise configuration sur le serveur ou à quelque chose de plus grave. Un attaquant sur votre réseau pourrait essayer de vous permettre de visiter une version fausse (et potentiellement dangereuse) de example3.com

Si vous ignorez l'avertissement, l'utilisateur affichera le contenu de secure.example1.com

La configuration de VirtualHost ressemble à ceci

 <VirtualHost *:443> ServerName secure.example1.com DocumentRoot /var/www/blahblah SSLEngine on SSLCertificateFile /blahblah.crt SSLCertificateKeyFile /blahblah.key SSLCertificateChainFile /blahblah.pem </VirtualHost> <VirtualHost *:443> ServerName secure.example2.com DocumentRoot /var/www/blahblah SSLEngine on SSLCertificateFile /blahblah.crt SSLCertificateKeyFile /blahblah.key SSLCertificateChainFile /blahblah.pem </VirtualHost> <VirtualHost *:80> ServerName example3.com DocumentRoot /var/www/blahblah </VirtualHost> 

Comment puis-je empêcher ce comportement?

2 Solutions collect form web for “Comment éviter https: // être accessible à partir de domaines sans certificat?”

Les domaines non SSL ne doivent pas utiliser cette IP. Même pour plusieurs domaines compatibles avec SSL, vous comptez sur les clients pour implémenter SNI sans problème, ce qui peut ou non être une hypothèse sûre.

Le problème est que, avant que Apache ne puisse rediriger le navigateur vers HTTP, une prise de contact SSL doit réussir. Par conséquent, si vous ne pouvez pas fournir un certificat valide pour le domaine, les clients réclameront toujours des erreurs SSL.

Edition : plusieurs domaines SSL fonctionneront sans problème si vous utilisez un seul certificat avec des SAN appropriés (certificat multidomaine). Le problème avec les domaines non SSL reste cependant.

Comme Koen van der Rijt l'a déjà écrit, vous devriez vérifier SF pour des questions similaires et lire attentivement les réponses.

  apache2ctl -S 

Vous donne l'ordre de "exécution"

Donc, votre exemple1.com est le premier port: 443 domaine défini, celui-ci sera utilisé.

Au lieu de cela, vous pouvez soit créer un certificat authentifié autonome et informer l'utilisateur que ce domaine n'a pas de connexion https en ce moment ou faire une réécriture de code qui redirige le trafic de https://domain3.com vers http://domain3.com . Notez que cela nécessiterait un certificat "invalide" et informera l'utilisateur.

Si vous n'utilisez pas SNI, vous avez en outre besoin d'au moins 1 IP par Cert.

  • Combien de domaines peuvent être liés avec un certificate SSL?
  • Risques de certificate auto-enregistrés
  • Git SSL Root CA
  • Windows PKI: Comment puis-je importer, signer / émettre et exporter un grand nombre de CSR?
  • Quand les requêtes OCSP sont-elles envoyées par les browsers Web?
  • Quels livres vont m'aider à apprendre tout ce que je peux sur SSL / PKI?
  • Comment puis-je exiger des certificates clients avec un nom d'user / mot de passe spécifique dans Apache?
  • Exim après la mise à jour de Thunderbird: "Impossible de négocier une suite de chiffrement prise en charge" [fermé]
  • Certificats côté client (Apache, Linux, OpenSSL)
  • Utilisation d'une CA alternative (comme Microsoft Certificate Services) avec Puppet
  • Configuration Apache Mod_ssl pour la conformité PCI
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.