Смешанный активный контент не является смешанным. HTTPS-адреса блокируются.

Я пытаюсь включить HTTPS на своем веб-сайте и сталкиваюсь с проблемой, когда веб-страница https импортирует js/css/fonts/etc из расположений https, но браузер видит некоторые (не все) из них как http ссылки.

См. пример на JSFiddle:

<html>
<head>

<!-- This loads correctly as HTTPS content -->
<script type="text/javascript" src="//code.jquery.com/jquery-3.3.1.min.js"></script>

<!-- This is blocked by the browser as Mixed Active Content, even though the page scheme is https -->
<script type="text/javascript" src="//highcharts.com/highslide/highslide-full.min.js"></script>

<!-- Explicitly setting `https` does not change the result -- it still considers this `http` -->
<script type="text/javascript" src="https://highcharts.com/highslide/highslide-full.min.js"></script>

</head>
<body>
<p>Lorem ipsum</p>
</body>
</html>

Что здесь происходит? Проблема в источнике? Почему кажется, что браузер произвольно заменяет https на http? Он тянет из своего кеша? (Я пытался использовать Ctrl-F5; есть ли лучший способ исключить это? Почему бы ему также не кэшировать JQuery таким же образом?)

Похоже, это тот же вопрос, что и https://stackoverflow.com/questions/32307235/how-to-fix-blocked-loading-mixed-active-content-for-css-and-js-over-https, но принятое там решение не помогло. Трудно найти другие связанные вопросы, потому что все, что я вижу, кажется, просто объясняет супер-базовый смешанный активный контент, что вы не можете использовать и http, и https на одной странице, что я уже понимаю.


person user2100826    schedule 13.04.2018    source источник
comment
Вместо этого попробуйте https://www.highcharts.com/highslide/highslide-full.min.js. Причина, по которой вы сталкиваетесь с этой проблемой смешанного содержимого, заключается в том, что даже если вы можете перейти к highcharts.com/highslide/highslide-full.min.js URL, как и ожидалось, если вы вставляете этот URL в адресную строку браузера — highcharts.com веб-сервер по какой-то причине отвечает на запросы вашего кода для этого https URL с перенаправление 301 на (не-4_) URL-адрес http://highcharts.com/highslide/highslide-full.min.js.   -  person sideshowbarker    schedule 16.04.2018
comment
Вы можете наблюдать такое же странное поведение на этом highcharts.com сервере, используя curl: curl -I highcharts.com /highslide/highslide-full.min.js Я не знаю, почему этот сервер отвечает на запросы таким образом, когда он этого не делает, если вы переходите по URL-адресу непосредственно в браузере, но это не так. если вы делаете тот же запрос, но вместо этого используете имя хоста www.highcharts.com в URL запроса: curl -I highcharts.com/highslide/highslide-full.min.js   -  person sideshowbarker    schedule 16.04.2018
comment
Запросы к https://highcharts.com/highslide/highslide-full.min.js (то есть no-www) также можно заставить работать должным образом, если добавить заголовок запроса Host: www.highcharts.com: curl -I -H Host: www.highcharts.com highcharts.com/highslide/highslide-full.min.js   -  person sideshowbarker    schedule 16.04.2018