Apache Vhosts HTTP и HTTPS (оба) перенаправляют в другой домен - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь перенаправить обе версии Домена-A (HTTP и HTTP) в другой домен Домен-B. Довольно простые вещи, но не все так просто.

Посмотрите, что я сейчас делаю:

<VirtualHost *:80>
    ServerName DOMAIN-A.com
    ServerAlias www.DOMAIN-A.com
    RewriteEngine on
    RewriteRule (.*) http://DOMAIN-B.com? [R=301,L]
</VirtualHost>
<VirtualHost *:443>
    ServerName DOMAIN-A.com
    ServerAlias www.DOMAIN-A.com
    RewriteEngine on
    RewriteRule (.*) https://DOMAIN-B.com? [R=301,L]
</VirtualHost>
<VirtualHost *:443>
    ServerName DOMAIN-B.com
    DocumentRoot /var/www/DOMAIN-B/html
    SSLEngine on
    SSLCertificateFile "/etc/letsencrypt/live/DOMAIN-B/cert.pem"
    SSLCertificateKeyFile "/etc/letsencrypt/live/DOMAIN-B/privkey.pem"
    SSLCertificateChainFile "/etc/letsencrypt/live/DOMAIN-B/chain.pem"
</VirtualHost>
  • Запросы к HTTP (порт 80) DOMAIN-A к DOMAIN-B, как и ожидалось

  • Запросы к HTTPS (порт 443) DOMAIN-A не перенаправляет, вместо этого выдает ошибку сертификата SSL. Поскольку DOMAIN-A не имеет SSL, вместо моего перенаправления представляется сертификат сервера по умолчанию. (SSL BAD DOMAIN) Когда я принимаю исключение в браузере, оно перенаправляет.

Вопрос ***

Можете ли вы увидеть ошибку в моем файле vhost? или мне нужно создать сертификат SSL для домена, который я перенаправляю? какие-нибудь более легкие обходные пути?

Большое спасибо

1 Ответ

0 голосов
/ 09 ноября 2018

Вы должны включить файлы SSL для DOMAIN-A.com на порт 443 следующим образом:

<VirtualHost *:80>
    ServerName DOMAIN-A.com
    ServerAlias www.DOMAIN-A.com
    Redirect permanent / https://DOMAIN-B.com/
</VirtualHost>
<VirtualHost *:443>
    ServerName DOMAIN-A.com
    ServerAlias www.DOMAIN-A.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/DOMAIN-A/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN-A/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/DOMAIN-A/chain.pem
    Redirect permanent / https://DOMAIN-B.com/
</VirtualHost>
<VirtualHost *:443>
    ServerName DOMAIN-B.com
    DocumentRoot /var/www/DOMAIN-B/html
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/DOMAIN-B/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN-B/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/DOMAIN-B/chain.pem
</VirtualHost>

Также у вас была небольшая ошибка на DOMAIN-A.com, которая перенаправлялась на http://DONMAIN-B.com/, но нет конфигурации для этого домена на порту 80. Возможно, вам следует добавить это тоже.

...