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,

Другие вопросы по тегам