HTTPS только проверяет имя хоста при проверке сертификата (см RFC 2818 Section 3.1), а не порт, так что вы не должны иметь никаких проблем с использованием того же сертификата для двух различных приложений на том же хосте.
Вы могли бы:
- Apache HTTPd на
https://www.example.com/
(порт 443, по умолчанию)
- IIS на
https://www.example.com:8443/
(порт 8443)
Где это собирается быть проблемой, если вы хотите использовать тот же порт для Apache Httpd и IIS. Не обязательно иметь другой сервер, работающий на нестандартном порту для HTTPS: это может вызвать проблемы, так как некоторые брандмауэры (и некоторые прокси-серверы) не позволят вам подключаться к HTTPS на другом порту, чем 443 (или, по крайней мере, , порт 8443 не будет открыт).
Решение этой проблемы заключается в использовании Apache Httpd в качестве интерфейса и пересылки «раздела» запроса (например, eveything, начинающегося с 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 в обратную сторону.
Это удивительно удивительный ответ! – Oliver
IIS может выступать в качестве обратного прокси для Apache HTTPD, Apache Tomcat и, возможно, других, используя его модуль маршрутизации запросов приложений (ARR). Могут быть лучшие варианты настройки вашей установки, но если вам нужно, чтобы IIS направлял входящие запросы, ARR работает. Текущая ссылка на него: http://www.iis.net/downloads/microsoft/application-request-routing. –