Отключите требование https для защищенных веб-API https в Chrome и Firefox.

Многие современные веб-API настроены браузером только на HTTPS< /а>. Это хорошо для пользователей, но может сделать разработку болезненной. Во время разработки я хотел бы иметь возможность отключить это требование только для тестирования.

Есть ли флаг, который я могу установить (about:config в firefox, about:flags в chrome) или параметр командной строки, который я могу передать, чтобы отключить это требование, чтобы я мог протестировать без необходимости настраивать сертификаты https и добавлять их в браузер ?

Примечание. Я понимаю, что требование https отпадает для локального хоста, но я часто размещаю на одном компьютере (например, на ноутбуке) и тестирую на другом (например, на устройстве Android) или на другом рабочем столе. Я знаю, что могу сгенерировать локальный сертификат и запустить сервер, поддерживающий https. Затем мне приходится иметь дело с предупреждениями безопасности в браузерах (недействительный сертификат) и/или добавлять частные сертификаты на все устройства ИЛИ мне нужно зарегистрировать домен исключительно для получения действительного сертификата через letsencrypt. Для моего собственного разработчика я просто хотел бы временно отключить эту проверку в браузере, если это возможно. Конечно, то, что я на самом деле предоставляю пользователям, будет https, но во время разработки, если бы я мог отключить это требование, все было бы намного проще.

В моем конкретном случае я пытаюсь использовать WebXR, поэтому dev происходит на моем ноутбуке, но фактическое тестирование происходит на устройстве Android, где страница обслуживается с моего ноутбука.


person gman    schedule 01.01.2020    source источник


Ответы (2)


Одно из предложенных решений здесь заключается в использовании переадресации портов Chrome.

https://developers.google.com/web/tools/chrome-devtools/remote-debugging/local-server

Это работает для рабочего стола Chrome на Android

На рабочем столе вы указываете рабочему столу Chrome, какой сайт на каком порту перенаправлять на ваше устройство Android на другом порту. Этот сайт может быть сервером в Интернете или сервером, работающим локально на вашем рабочем столе. На устройстве Android вы можете получить доступ к этому сайту по адресу http://localhost:<port-you-specified>. Требования к https для хоста locahost сняты, поэтому теперь вы можете использовать API, которые в противном случае были ограничены.

person gman    schedule 02.01.2020
comment
Это должен быть ваш ответ на вопрос или комментарий или дополнение к вашему вопросу? - person Rob; 02.01.2020
comment
Он действительно отвечает на вопрос, требования https для localhost отброшены, функция переадресации портов Chrome означает, что ваше устройство Android может видеть сервер, который ваш настольный Chrome может видеть через localhost на устройстве Android. Это все еще как найти решение для firefox. - person gman; 02.01.2020

В Chrome есть параметр разработчика Небезопасные источники, рассматриваемые как безопасные в chrome://flags/. Это текстовое поле, в которое вы можете добавить список источников, рассматриваемых как безопасные в целях разработки. (Через https://github.com/immersive-web/webxr/issues/60< /а>)

введите здесь описание изображения

person klausw    schedule 02.01.2020
comment
Я смущен, как это полезно. Когда я попытался с IP-адресом, это, похоже, не сработало. Если я использую доменное имя, мне нужно, чтобы мое устройство Android увидело это доменное имя, что создает множество препятствий для локально обслуживаемого веб-сервера. Есть ли что-то еще? - person gman; 02.01.2020