Apache2 обратный прокси-сервер 2 виртуальных хостов и ssl

У меня есть 2 сервера: app1.example.biz & app2.example.biz Мне нужно сделать следующее, используя apache2 в качестве обратного прокси-сервера, перенаправить весь трафик из Интернета на соответствующий сервер и использовать ssl. Конфигурация, которую я сделал, позволяет мне перенаправить app1.example.biz на https app1.example.biz, и я могу получить доступ к серверу. Проблема в том, что я не могу сделать то же самое для app2.example.biz, когда я набираю app2.example.biz, он перенаправляет меня на https app1.example.biz!! PS: я не могу опубликовать более двух гиперссылок, потому что я новый пользователь, но моя конфигурация верна.


<VirtualHost *:80>
   ServerName app1.example.biz/
    Redirect / https app1.example.biz/

</VirtualHost>

<VirtualHost *:443>

ServerName app1.example.biz
ServerAlias app1.example.biz

ProxyPass / http app1.example.biz/
ProxyPassReverse / http app1.example.biz/
SSLEngine on
SSLCertificateFile    /etc/ssl/servwiki.crt
SSLCertificateKeyFile /etc/ssl/servwiki.key
SSLVerifyClient none

</VirtualHost>

#<VirtualHost *>
#    ServerName app2.example.biz/
#    Redirect / https  app2.example.biz/
#</VirtualHost>

<VirtualHost *>
ProxyPreserveHost On
ServerName  app2.example.biz
ServerAlias  app2.example.biz

ProxyPass / http app2.example.biz/
ProxyPassReverse / http app2.example.biz/
SSLEngine on
SSLCertificateFile    /etc/ssl/servwiki.crt
SSLCertificateKeyFile /etc/ssl/servwiki.key
SSLVerifyClient none

</VirtualHost>

Я попытался: 1/ используя NameVirtualHost:80 & NameVirtualHost:443 2/ Называя каждый виртуальный хост, как это 3/ добавление

 <VirtualHost *>
ServerName www.example.biz
DocumentRoot /usr/local/apache/htdocs
#SSLEngine on
#SSLCertificateFile    /etc/ssl/servwiki.crt
#SLCertificateKeyFile /etc/ssl/servwiki.key
#SSLVerifyClient none
</VirtualHost>

это решает проблему перенаправления http app1.example.biz & http app2.example.biz на соответствующий сервер, но не работает с ssl!

plzzzzz помогите

1 ответ

Предположительно, вы пропали :443 в вашей второй конфигурации виртуального хоста (я не уверен, что это просто ошибка копирования / вставки здесь).

Следующая проблема, с которой вы столкнетесь, заключается в том, что вам нужно будет иметь возможность обрабатывать несколько хостов по SSL/TLS. Для этого вам потребуется, чтобы сервер представил действительный сертификат для этого имени хоста во время рукопожатия SSL / TLS, прежде чем отправлять какие-либо HTTP-запросы / ответы. Это можно сделать с помощью одного из следующих методов:

  • Используйте один IP-адрес и один сертификат, действительный для всех хостов, которые вы хотите обслуживать одновременно. Этого можно достичь с помощью сертификата с несколькими записями альтернативного имени субъекта (app1.example.biz а также app2.example.biz), иногда называемый UCC, или подстановочный сертификат (например, *.example.biz, но их использование не рекомендуется).
  • Используйте разные IP-адреса для каждого хоста, если можете. В этом случае не полагайтесь на NameVirtualHost для HTTPS, но установите IP-адреса в каждой записи виртуального хоста и настройте каждый раздел виртуального хоста с его сертификатом.
  • Используйте один IP-адрес и несколько сертификатов, но ваш клиент должен будет поддерживать расширение индикации имени сервера. (Это не поддерживается ни одной версией IE в Windows XP, некоторых мобильных клиентах и ​​Java 6, например.) Как настроить его в Apache Httpd, описано на этой странице.
Другие вопросы по тегам