web-dev-qa-db-ja.com

AndroidのGoogleChromeで、unsafely-treat-insecure-Origin-as-secureを設定する方法

WebアプリでgetUserMedia()を使用していますが、ローカルホストでアプリをテストすると正常に機能します。しかし、ラップトップをサーバーとして扱い、Google Chrome私のAndroid電話のブラウザ)でアプリを起動すると、エラーが発生します。

getUserMedia()は、安全でないオリジンでは機能しなくなりました。この機能を使用するには、アプリケーションをHTTPSなどの安全なオリジンに切り替えることを検討する必要があります。詳細については、 https://goo.gl/rStTGz を参照してください。

[ https://goo.gl/rStTGz] [1] をチェックしたところ、安全でないオリジンではgetUserMedia()が非推奨になっていることがわかりました。開発モードについては、

chrome --unsafely-treat-insecure-Origin-as-secure = "example.com"フラグを使用して実行できます(「example.com」を実際にテストするOriginに置き換えます) )

このフラグはどこでどのように設定できますか?他に選択肢はありますか?

22
Developer

localhostをデバイスに移動します

1つの方法は、AndroidデバイスでHTTPサーバーを実行することです。 この質問 に対する回答のコンセンサスは、 NanoHTTPD を試す価値があるということです。既製のアプリケーションが必要な場合は、Google Playストアでhttp server for AndroidのWeb検索が表示されます Simple HTTP Server Webアプリケーションのクライアント側をデバイスにコピーして、サーバーの場合、Androidの場合はChromeでhttp://localhost:12345を開くことができるはずです。

または、テストサーバーを安全にします

既存のテストサーバーを潜在的に信頼できるオリジンに変えることで、--unsafely-treat-insecure-Origin-as-secureを使用せずにセキュアコンテキストのみの機能をテストできます。次の手順を実行します:

  1. dehydrated ACMEクライアントと互換性のあるDNSホスティングをバンドルするレジストラ でドメインをまだ所有していない場合は、ドメインを登録します。これには料金が発生し、ドメインをアクティブにしておく限り繰り返し発生します。
  2. テストWebサーバーの内部IPアドレスにサブドメインを指定します。インターネットからアクセスできる必要はありません。
  3. NameVirtualHostなどを使用して、このサブドメインのポート443でHTTPSに応答するようにテストWebサーバーを構成します。
  4. dehydrated ACME client をDNSホストの適切なdns-01フックとともに使用して、テストWebサーバーのLet'sEncryptから証明書を取得します。
  5. この証明書をテストWebサーバーにインストールします。
1
Damian Yerrick

私もこの問題に直面しましたが、Chromium、Ubuntuで。コンソールでこのコマンドを実行する際の問題を解決しました。

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

ここで、localhost.dev:3000はWebサイトです。

他のシステム情報については、以下を参照してください。

データディレクトリはどこですか

起動方法chromeおよびキーの設定

--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ページでフラグを設定することもできます。

0
Jewel_Sam

これは、chrome://flags/またはabout://flagsから実行できます。

about://flagsに移動し、unsafely-treat-insecure-Origin-as-secureフラグを検索して、有効にします。安全なものとして扱いたいオリジンを提供する必要があります。
複数の原点をカンマ区切りの値として入力できます。

プロトコル部分も重要であり、IPアドレスまたはドメイン名を指定するだけでは不十分であることに注意してください。例えば。 http://in http://192.168.43.45

以下は私の携帯電話のスクリーンショットです。

モバイル:Samsung Galaxy S10e
Androidバージョン:10(Android 10)
Google Chrome version79.0.3945.136

About flags in chrome on Android

私が構築しているWebサイトのローカルテストでは、ジオロケーションが必要でした。地理位置情報は安全な場所で許可されています。 https証明書付きの本番サーバーはありますが、毎回コンテンツをアップロードする必要がある場合、開発とデバッグのプロセスが遅くなります。

0
Sahil Singh