在Android的谷歌浏览器中,如何设置unsafely-treat-insecure-origin-as-secure

时间:2016-01-19 13:59:01

标签: android google-chrome getusermedia

我在我的网络应用中使用getUserMedia(),当我在localhost上测试我的应用时效果很好。但如果我将笔记本电脑视为服务器并在我的Android手机的谷歌Chrome浏览器中启动应用程序,它会给我错误:

  

getUserMedia()不再适用于不安全的起源。要用这个   功能,您应该考虑将应用程序切换为安全的   原点,例如HTTPS。有关详细信息,请参阅https://goo.gl/rStTGz

当我检查[https://goo.gl/rStTGz][1]时,我知道getUserMedia()在不安全的起源上被弃用了。它写的是开发模式,

  

您可以使用。运行chrome   --unsafely-treat-insecure-origin-as-secure =“example.com”标志(用你想要测试的原点替换“example.com”)

我如何以及在哪里设置此标志?还有其他选择吗?

3 个答案:

答案 0 :(得分:2)

这可以从chrome://flags/about://flags完成。

转到about://flags,搜索unsafely-treat-insecure-origin-as-secure标志并启用它。您必须提供要视为安全的来源。
可以输入多个原点作为逗号分隔值。

请注意,协议部分也很重要,并且指定IP地址或域名还不够。例如。 http:// http://192.168.43.45中。

以下是我手机的屏幕截图。

手机:三星Galaxy S10e
Android版本:10(Android 10)
Google Chrome版本79.0.3945.136

About flags in chrome on Android

要对我正在构建的网站进行本地测试,需要进行地理位置定位。 允许在安全位置进行地理位置定位。我确实有一个带有https证书的生产服务器,但是如果我每次都必须向其上载内容,则开发和调试过程将变得太慢。

答案 1 :(得分:0)

我也面临这个问题,但在Chromium,Ubuntu。我在控制台中运行此命令解决了这个问题:

chromium-browser --unsafely-treat-insecure-origin-as-secure="http://localhost.dev:3000" --user-data-dir=~/.config/chromium/Profile 1

其中localhost.dev:3000是您的网站。

对于其他系统信息:

where is data directory

how to launch chrome and set keys

有关--unsafely-treat-insecure-origin-as-secure标志的简短信息:

  

将给定(不安全)的起源视为安全起源。多个起源可以   提供。除非还提供了--user-data-dir,否则无效。   例如:

     

--unsafely-treat-insecure-origin-as-secure=http://a.test,http://b.test --user-data-dir=/test/only/profile/dir

我没有检查,但对于android,你也可以在chrome:// flags页面上设置标志。

答案 2 :(得分:0)

5.0移至设备

一种方法是在Android设备上运行HTTP服务器。回答this question的共识是NanoHTTPD值得尝试。如果您需要现成的应用程序,则会在Google Play商店中对localhost进行网络搜索Simple HTTP Server。将Web应用程序的客户端复制到设备并启动服务器后,您应该可以在Chrome for Android中打开http server for android

或使您的测试服务器安全

您可以通过将现有测试服务器转变为可信赖的来源,在不使用http://localhost:12345的情况下测试仅安全上下文功能。请按照以下步骤操作:

  1. 如果您尚未在registrar that bundles DNS hosting compatible with the dehydrated ACME client拥有域名,请注册一个域名。这会产生费用,只要您保持域名有效就会再次发生。
  2. 将子域指向测试Web服务器的内部IP地址。它无需从互联网上访问。
  3. 使用--unsafely-treat-insecure-origin-as-secure等配置您的测试网络服务器以响应此子域的端口443上的HTTPS。
  4. 使用dehydrated ACME client与DNS主机相应的NameVirtualHost挂钩,从您的测试网络服务器的Let's Encrypt获取证书。
  5. 将此证书安装到测试Web服务器中。