HLS на странице HTTPS для источников HTTP
Можно ли использовать источники без протокола SSL с HLS на странице и в списке воспроизведения, обслуживаемом по протоколу SSL HTTPS?
У меня есть страница, обслуживаемая по HTTPS. Он использует Video.js для воспроизведения списка воспроизведения.m3u8. Список воспроизведения выбирается с того же сервера через HTTPS и генерируется динамически. Отдельные сегменты.ts в списке воспроизведения хранятся в CDN.
Я обнаружил, что рукопожатия SSL для каждого запроса.ts GET высоки. Вместо этого вы бы хотели, чтобы.ts GET использовали HTTP не-SSL - видеоконтент не чувствителен (и если бы это было так, HLS поддерживает симметричное шифрование AES, которое значительно быстрее, чем асимметричное рукопожатие SSL).
Однако Chrome отказывается загружать сегменты.ts из HTTP-источника без SSL:
video.js:26948 Mixed Content: The page at 'https://localhost' was
loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint
'http://foo.com/20180110144476.ts'. This request has been blocked;
the content must be served over HTTPS.
Добавление политики безопасности контента не помогает:
<meta http-equiv="Content-Security-Policy" content="connect-src http://foo.com 'self';">
1 ответ
Так как ts
файлы выбираются через XMLHttpRequest
они считаются активным смешанным контентом, и современные браузеры по умолчанию блокируют доступ.
CSP connect-src
Опция дополнительно ограничивает источники, к которым вы можете подключиться, и не позволит вам обойти проверку смешанного содержимого.
Я боюсь, что единственный способ состоит в том, чтобы служить всему HTTPS
или же HTTP
,