HTTPS проверяет только имя хоста при проверке сертификата (см. RFC 2818, раздел 3.1 ), но не порт, поэтому у вас не должно возникнуть проблем с использованием одного и того же сертификата для двух разных приложений на одном и том же хозяйничать.
Вы можете иметь:
Проблема может возникнуть в том случае, если вы хотите использовать один и тот же порт для Apache Httpd и IIS. Не обязательно хорошая идея иметь другой сервер, работающий на нестандартном порту для HTTPS: это может вызвать проблемы, так как некоторые брандмауэры (и некоторые прокси-серверы) не позволят вам подключиться к HTTPS на другом порту, отличном от 443 (или, по крайней мере, порт 8443 не будет открыт).
Решением этой проблемы является использование Apache Httpd в качестве внешнего интерфейса и пересылка «секции» запроса (например, начиная с https://www.example.com/iis/
) в IIS сзади. Это можно сделать с помощью обратного прокси-сервера (см. mod_proxy_http
в Apache Httpd). Если ваш сервер IIS находится на той же машине, перенаправление может фактически перейти к localhost
(на выбранном вами порту для IIS, возможно, не по умолчанию 80). В этом случае соединение между Apache Httpd и IIS не нужно защищать с помощью SSL / TLS, поэтому вам не нужно настраивать сертификат для IIS (вы можете, если вы действительно хотите, но это бесполезно для localhost
подключений). Все соединения SSL / TLS от пользователей будут заканчиваться на Apache Httpd, который затем будет внутренне отправлять некоторый запрос в IIS сзади.
При размещении Apache Tomcat (или контейнера Java) за Apache Httpd, возможно, будет доступно больше документации, но принципы должны быть такими же при замене Tomcat на IIS.
Вот некоторая документация по Apache Httpd с Jetty: http://wiki.eclipse.org/Jetty/Howto/Configure_mod_proxy#Configuring_Apache_mod_proxy_with_Jetty
С точки зрения Apache Httpd использование IIS вместо Jetty должно быть очень похожим. Возможно, вам придется настроить IIS, чтобы он притворялся, что его входящие запросы поступают по протоколу HTTPS (так как они приходят по обычному HTTP), если это требуется для некоторых приложений IIS.
Я думаю, что IIS также имеет возможности обратного прокси-сервера, поэтому, если этот подход слишком сложен, вы сможете поменяться ролями. Попробуйте использовать IIS в качестве точки входа HTTPS и поместить приложение Apache / PHP в конец.