オレオレ証明書の入ったサーバーで Service Worker のテストをしたいとき

This work is licensed under a Creative Commons Attribution 4.0 International License. Web Fundamentals | Google Developers

こんな状況。

  • テストはイントラネット内にあるサーバーを使用。
  • 自己署名証明書 (通称: オレオレ証明書) が入っている。
  • ブラウザは Chrome。

普通に Chrome で開こうとするとエラーが出て動作しません。

どうすればいいか。

Chrome の起動オプションで以下を指定します。

--user-data-dir="D:\ユーザーデータディレクトリ" --unsafely-treat-insecure-origin-as-secure="https://テストサーバー.site"

これは何をしているの?

Service Worker は、その強大な力を抑えるために localhost であるか、https でないと動作しないという制限が課せられています。

しかし、https であっても、オレオレ証明書の場合には以下のようなエラーにより Service Worker は動作しません。

An SSL certificate error occurred when fetching the script.

–unsafely-treat-insecure-origin-as-secure を起動オプションに指定することで、エラーを出さずに Service Worker が動作させることができるようになります。

あまり重要そうに見えませんが –user-data-dir は必須です。

証明書の警告なんとかならないの?

確認の度に証明書の警告が表示されるのは非常に煩わしいものです。

これも起動オプションで非表示にします。

--ignore-certificate-errors 

これで Service Worker も動いて存分にテストできますね。

めでたしめでたし。

・・・

余談ですが、これらは Chrome の GUI からも設定できます。

ただ、GUI から設定すると状態が残ってしまうため、外部のインターネットに接続する際に戻し忘れが発生し危険です。

テスト用に専用のプロファイルを作るか、ショートカットやエイリアスを用意することをお勧めします。

Portions of this page are reproduced from work created and shared by Google and used according to terms described in the Creative Commons 4.0 Attribution License.


コメント