, так как вы не показали свою настройку VirtualHost, вот как я бы сделал это с нуля.
Сначала настройте VirtualHost для порта 443 на вашем первом сервере Apache:
Listen *:443
<VirtualHost *:443>
ServerName www.domain1.com
ServerAlias domain1.com
SSLEngine On
[... all our SSL directives, like certs ...]
SSLProxyEngine on
RewriteEngine On
RewriteRule ^(.*) https://subdomain2.domain2.ext2/$1 [R=301,P]
</VirtualHost>
- Для вашего RewriteRule, L не требуется, когда вы используете флаг P, он неявный.
- Ваш RewriteCond не является строго обязательным, поскольку, если вы находитесь в этом VirtualHost, вы запросили https://www.domain1.com или https://domain1.com. Но если это самый верхний VirtualHost для порта 443, его можно использовать как VirtualHost по умолчанию для запросов на порт 443 в целом, поэтому он также не ошибается.
Затем настройте другой VirtualHost для домена2, снова на порт 443, на другом сервере:
Listen *:443
<VirtualHost *:443>
ServerName www.domain2.com
ServerAlias domain2.com
SSLEngine On
[... all our SSL directives, like certs ...]
DirectoryIndex ...
[ ... other configurations to publish your pages ...]
</VirtualHost>
- Полученная ошибка говорит о том, что SSL не включен с портом 80, что имеет смысл. Если вы запросите
http://www.domain1.com
, он будет отправлен соответствующему VirtualHost на порт 80, который является HTTP, следовательно, не SSL. Вы должны попросить https://www.domain1.com
.
Если вы хотите установить обе системы на одну систему, у вас возникнет небольшая проблема. У вас не может быть двух VirtualHost с разными доменными именами на одном и том же IP и одном и том же порту (443) для SSL. Это потому, что Apache не знает, какой домен вы хотите, до после согласования сертификатов. Таким образом, способ решить это:
- два сервера, по одному на домен HTTPS.
- Один IP на домен HTTPS. Вы должны сделать
Listen IP1:443
и Listen IP2:443
и настроить VirtualHost, используя их также.
- Один порт на домен HTTPS. Ваш domain1 VirtualHost может использовать порт 443 (по умолчанию для https: // ... Requets). Ваш домен2 VirtualHost может использовать любой другой порт, так как он будет известен только вам и скрыт от клиентов. Ваш RewriteRule будет использовать
https://subdomain2.domain2.ext2:<THE PORT>/$1
Но это длинная тема, и вам нужно было бы провести некоторые исследования по запуску множества HTTPS-сайтов на одном сервере для всех деталей.