После некоторых поисков в Интернете я определил, что HTTP-запрос, отправленный до SSL-соединения, указывает браузеру, на каком IP-адресе зарегистрирован домен. В результате при любых принудительных перенаправлениях впоследствии будет использоваться исходный сертификат.
^ Правильно ли мое понимание выше? Может ли кто-нибудь сказать мне, где именно это происходит в HTTP-запросе?
У меня есть сервер Apache2, и я принудительно перенаправлял 301 с моего старого домена https на новый домен https. Это вызывало проблемы независимо от того, какие настройки я пробовал.
Если бы я использовал старые сертификаты для перенаправления: это привело бы к использованию старых сертификатов в новом домене.
Если бы я использовал новые сертификаты для перенаправления: это привело бы к использованию новых сертификатов в старом домене.
Оба привели к исключению безопасности SSL.
Я использую стандартные подстановочные сертификаты без функций SAN.
На данный момент мне пришлось настроить новый сервер, чтобы сделать это без получения исключения безопасности от браузера.
... Я определил, что HTTP-запрос, отправленный до SSL-соединения, указывает браузеру, на какой IP-адрес зарегистрирован домен.
Это не верно. HTTP-запрос не определяет никакой связи между URL / именем хоста и IP-адресом. Это делает DNS. Но если перенаправление выполняется на то же имя хоста, то обычно будет использоваться тот же IP-адрес. Но это может быть другой IP-адрес, если несколько IP-адресов связаны с одним и тем же именем хоста в DNS.
В результате при любых принудительных перенаправлениях впоследствии будет использоваться исходный сертификат.
Если вы перенаправляете с HTTP на HTTPS, то оригинального сертификата нет, так как у HTTP нет сертификата, только HTTPS. Если вы перенаправляете с HTTPS на хосте A на HTTPS на хосте B, то первый доступ (к хосту A) должен привести к сертификату для хоста A, а второй запрос (к хосту B) должен привести к сертификату для хоста B.
У меня есть сервер Apache2, и я принудительно перенаправлял 301 с моего старого домена https на новый домен https. Это вызывало проблемы независимо от того, какие настройки я пробовал.
В этом случае вы перенаправляете с одного имени хоста на другое имя хоста. Целевой IP-адрес может быть другим, но он также может быть одинаковым, если оба имени размещены в одной системе. Но на самом деле это не имеет значения.
Важно то, что имя хоста в URL-адресе должно соответствовать теме (-ам) сертификата. И перенаправление изменяет URL-адрес и, таким образом, может изменить имя хоста URL-адреса. Не имеет значения, задействован ли другой IP-адрес или нет: если имя хоста в URL-адресе не соответствует теме сертификата, проверка не удастся.
Таким образом, вам нужно либо:
Перенаправление здесь не должно быть проблемой. Попробуйте отключить перенаправление и поместить статический файл в свой старый домен. У вас все еще возникают проблемы с сертификатом?
Попробуйте оба домена на SSLLabs и убедитесь, что нет серьезных проблем.
Оба домена должны иметь собственные сертификаты. В очень старых браузерах без SNI (указание имени сервера) вам понадобятся два IP-адреса для этой настройки.