Во-первых, я не хочу использовать перезаписи.
Я пытаюсь перенаправить любой вызов (HTTP или HTTPS) на myserver
в защищенный полный домен, используя https на https://myserver.fullyqualified.com
.
Вот мой конфиг
# Redirect all http traffic to https
<VirtualHost *:80> # line 545
Redirect / https://myserver.fullyqualified.com/
</VirtualHost>
<VirtualHost *:443> # line 549
ServerName myserver.fullyqualified.com
SSLEngine on
SSLCertificateFile "conf/mycert.crt"
SSLCertificateKeyFile "conf/mykey.key"
</VirtualHost>
<VirtualHost *:443> # line 555
ServerName myserver
Redirect / https://myserver.fullyqualified.com/
</VirtualHost>
Это отлично работает для HTTP, я могу позвонить http://myserver
и перенаправляет на https://myserver.fullyqualified.com
просто хорошо.
Однако когда я звоню https://myserver
Я получаю сообщение об ошибке, что сайт небезопасен, и он не перенаправляет на https://myserver.fullyqualified.com
как я и ожидал.
В Chrome ошибка говорит
Этот сервер не смог доказать, что это мой сервер; его сертификат безопасности получен с myserver.fullyqualified.com. Это может быть вызвано неправильной конфигурацией или злоумышленником, перехватывающим ваше соединение.
Это результат httpd -S
*:80 MYSERVER.fullyqualified.com (C:/Apache24/conf/httpd.conf:545)
*:443 is a NameVirtualHost
default server myserver.fullyqualified.com (C:/Apache24/conf/httpd.conf:549)
port 443 namevhost myserver.fullyqualified.com (C:/Apache24/conf/httpd.conf:549)
port 443 namevhost myserver (C:/Apache24/conf/httpd.conf:555)
ServerRoot: "C:/Apache24"
Main DocumentRoot: "C:/Apache24/htdocs"
Main ErrorLog: "C:/Apache24/logs/error.log"
Mutex default: dir="C:/Apache24/logs/" mechanism=default
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: using_defaults
PidFile: "C:/Apache24/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
Define: SRVROOT=c:/Apache24
Как я могу перенаправить HTTPS-трафик на полное доменное имя?
В вашем SSL-сертификате для HTTPS должен быть myserver в качестве альтернативного имени, поскольку это кажется простой ошибкой ssl, которая блокирует перенаправление.
Если сертификат самодельный, перед тестированием обязательно установите его в клиентском магазине. Вы можете развернуть сертификат с помощью GPO, если вы находитесь в домене активного каталога.
Если ваш сертификат предназначен для https://example.com
, браузер не примет его для доступа https://example
потому что имена не совпадают.
Если у вас нет самозаверяющих сертификатов, принятых в вашем браузере (и у всех ваших клиентов), этого нельзя предотвратить, и вы не получите никаких общедоступных подписанных сертификатов (например, с Let's encrypt или любым обычным CA) для имени хоста. без TLD.