Apache et IIS partageant le même certificate SSL

J’ai deux applications (PHP et .NET) fonctionnant sur la même machine mais des serveurs différents (un sur Apache et un sur IIS). J’ai également un certificate SSL utilisé par une application PHP. Je souhaite que mon application .NET fonctionne sur le même nom de domaine et utilise le même certificate.

Comment dois-je configurer mes serveurs?

J’apprécierais toute aide.

HTTPS vérifie uniquement le nom d’hôte lors de la vérification d’un certificate (voir la section 3.1 de la RFC 2818 ), pas le port. Vous ne devriez donc pas avoir de problème pour utiliser le même certificate pour deux applications différentes sur le même hôte.

Tu aurais pu:

  • Apache Httpd sur https://www.example.com/ (port 443, par défaut)
  • IIS sur https://www.example.com:8443/ (port 8443)

Si vous voulez utiliser le même port pour Apache Httpd et IIS, cela posera problème. Ce n’est pas nécessairement une bonne idée d’avoir un serveur différent s’exécutant sur un port non standard pour HTTPS: cela peut poser problème car certains pare-feu (et certains serveurs proxy) ne vous permettent pas de vous connecter à HTTPS sur un autre port que 443 , le port 8443 ne sera pas ouvert).

Une solution consiste à utiliser Apache Httpd en tant que serveur frontal et à transférer une “section” de la requête (par exemple tout ce qui commence par https://www.example.com/iis/ ) vers IIS à l’arrière. Cela peut être fait en utilisant un proxy inverse (voir mod_proxy_http dans Apache Httpd). Si votre serveur IIS se trouve sur le même ordinateur, la redirection peut être effectuée sur localhost (sur le port de votre choix pour IIS, peut-être pas le port par défaut 80). Dans ce cas, la connexion entre Apache Httpd et IIS n’a pas besoin d’être sécurisée avec SSL / TLS, vous n’avez donc pas besoin de configurer un certificate pour IIS (vous pouvez le faire si vous le souhaitez, mais il n’est pas utile sur connexions localhost ). Toutes les connexions SSL / TLS des utilisateurs aboutiraient à Apache Httpd, qui enverrait ensuite en interne une requête à IIS à l’arrière.

Il pourrait y avoir plus de documentation disponible à ce sujet lorsque vous placez Apache Tomcat (ou un conteneur Java) derrière Apache Httpd, mais les principes doivent être les mêmes lorsque vous remplacez Tomcat par IIS.

Voici quelques documentations sur Apache Httpd avec Jetty: http://wiki.eclipse.org/Jetty/Howto/Configure_mod_proxy#Configuring_Apache_mod_proxy_with_Jetty

Du sharepoint vue d’Apache, le sharepoint vue d’Httpd utilisant IIS au lieu de Jetty devrait être très similaire. Vous devrez peut-être modifier la configuration d’IIS pour faire croire que ses requêtes entrantes sont transmises via HTTPS (car elles seront transmises via HTTP), si certaines de vos applications IIS sont configurées pour cela.

Je pense que IIS dispose également de fonctionnalités de proxy inverse, donc si cette approche est trop délicate, vous devriez pouvoir inverser les rôles. Recherchez IIS comme point d’entrée HTTPS et placez votre application Apache / PHP à l’arrière.

Un SSL est principalement enregistré sur un nom de domaine complet, par exemple http://www.mydomain.com

À moins que vous n’ayez un joker SSL, à moins que IIS et appache ne desservent exactement le même domaine, par exemple http://www.mondomaine.com, ce serait étrange car vous vous retrouveriez avec des conflits lors de l’exécution d’une requête sur ce domaine.

Mais installer un SSL sur IIS, suivez le guide ci-dessous.
IIS7 http://www.globalsign.com/support/install/install_iis7.php
IIS5 + 6 h ttp: //www.globalsign.com/support/install/install_iis5.php