Я пытаюсь перенаправить без правила перезаписи, например, https://www.domain.com к https://www.domain.net . У меня есть подстановочный сертификат для * .domain.net. Это дает следующее предупреждение в моем error_log
[предупреждение] Подстановочный знак сертификата сервера RSA CommonName (CN) `* .domain.net 'НЕ соответствует имени сервера !?
В этом есть смысл, и я понимаю, почему предупреждение. Я хотел бы спросить, есть ли способ использовать директиву Redirect для выполнения вышеуказанного без предупреждений. Вот мои виртуальные хосты в ssl.conf:
<VirtualHost *:443>
SSLEngine on
ServerName www.domain.net
DocumentRoot /var/www/html/domain
SSLOptions -FakeBasicAuth -ExportCertData +StrictRequire +OptRenegotiate -StdEnvVars
SSLStrictSNIVHostCheck off
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
ServerName www.domain.com
ServerAlias www.domain.info
Redirect permanent / https://www.domain.net
</VirtualHost>
Также, если есть решение, можно ли его использовать для перенаправления с htps: //domain.com на htps: //www.domain.com? Большое спасибо!
Имейте в виду, что происходит подтверждение SSL и процесс проверки базового HTTPS-соединения. перед фактический запрос отправлен. Это означает, что от сервера не будет ответа HTTP до того, как подлинность сертификата сервера будет проверена, даже не будет перенаправления.
Если у вас только одна конечная точка (т. Е. Только 1 общедоступный IP-адрес), вам нужно будет купить сертификат SAN, то есть сертификат с Альтернативные имена субъектов.
Таким образом у вас может быть подстановочный сертификат для *.domain.net
с SAN www.domain.com
, и вы не получите предупреждений о сертификатах
Для получения дополнительной информации проверьте старый ответ, который я дал для аналогичной ситуации просто с nginx
вместо того apache
www.domain.com
(и в этом отношении www.domain.info
) не являются тем же доменом, что и www.domain.net
, отсюда и предупреждение. У вас также должны быть сертификаты для этих доменов, если вам нужно избежать этого предупреждения.
Из другого вопроса ( https://stackoverflow.com/a/53424202/2590491 ):
Мое решение: httpS://www.example.com
-> http://www.example.net
-> httpS://www.example.net
<VirtualHost *:80>
ServerName www.example.net
Redirect "/" "https://www.example.net/"
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
#### The Tricky ####
Redirect "/" "http://www.example.net/"
SSLEngine on
# SSLProxyEngine On
SSLCertificateFile /path/example_com.crt
SSLCertificateKeyFile /path/example_com.key
SSLCertificateChainFile /path/DigiCertCA_example_com.crt
SSLProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.net
...
SSLEngine on
# SSLProxyEngine On
SSLCertificateFile /path/example_net.crt
SSLCertificateKeyFile /path/example_net.key
SSLCertificateChainFile /path/DigiCertCA_example_net.crt
SSLProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
</VirtualHost>