Как перенаправить домен с истекшим SSL-сертификатом на новый домен с помощью apache

Итак, в прошлом я использовал https://example.com . Затем решил, что хочу использовать https://myotherexample.com вместо example.com. Итак, я настроил сервер, указал DNS на этот сервер, и все было отлично. Теперь я хотел перенаправить https://example.com на https://myotherexample.com , чтобы люди со старым адресом продолжали переходить на новый сайт. Это отлично работает для перенаправления порта 80 в новый домен, однако при попытке перенаправить порт 443 (порт ssl) apache, похоже, требует наличия действующего сертификата SSL для старого домена (хотя я больше не обслуживаю безопасную версию сайта по этому адресу). Срок действия моего сертификата SSL для старого домена истек, и, поскольку там нечего защищать, я задаюсь вопросом, как мне сделать такое перенаправление?

example.com config:

▽
<VirtualHost *:80>


        ServerAdmin webmaster@localhost
        DocumentRoot /sites/example.com/html
        ServerName example.com
        ServerAlias www.example.com
        Redirect / https://myotherexample.com/


        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

И версия SSL, которую мне нужно перенаправить на новый домен:

<VirtualHost *:443>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /sites/example.com/html
        ServerName example.com
        ServerAlias www.example.com
        Redirect / https://myotherexample.com/

        <Directory /sites/example.com/html>
                Options FollowSymlinks
                AllowOverride All
                Require all granted
        </Directory>

        SSLEngine on
        SSLCertificateKeyFile /etc/apache2/ssl/example.com.key
        # this ssl is expired now
        SSLCertificateFile /etc/apache2/ssl/example.com.crt
        SSLCertificateChainFile /etc/apache2/ssl/example.com.IntermediateCA.crt

</VirtualHost>

Очевидно, я делаю это неправильно, но есть ли способ перенаправить домен SSL ( https-версию домена) в новый домен с использованием apache без необходимости хранить активный сертификат ssl в старом домене? Большое спасибо!

0
задан 14 January 2020 в 07:47
2 ответа

Такое поведение можно ожидать. Представьте, что кто-то взломал ваш DNS и установил 301 перенаправление. Вы можете использовать https://letsencrypt.org/ для бесплатного сервера и перенаправлять клиентов до тех пор, пока старый домен больше не будет доступен.

2
ответ дан 21 January 2020 в 01:19

Я перевернул ответ Матта, но хочу сказать об этом более явно.

Переадресация - это HTTP вещь, реализованная в виде набора кодов статуса ответа (3XX) и определенного заголовка (Location). Это обычная HTTP-транзакция. HTTP в HTTPS возможен только после успешного создания TLS соединения, а для TLS требуется действительный сертификат. Поэтому нет действительного сертификата => нет TLS => нет HTTPS => нет возможности перенаправления.

Просроченный сертификат недействителен, поэтому нельзя делать что-либо HTTP-ish до тех пор, пока сертификат не будет заменен, включая перенаправления.

.
0
ответ дан 21 January 2020 в 01:19

Теги

Похожие вопросы