💨

puppeteer実行した時に『アプリケーション“Chromium.app”へのネットワーク受信接続を許可しますか?』が表示される際の解決策

2023/08/28に公開

概要

puppeterを実行した際に、下記画像のような、「アプリケーション“Chromium.app”へのネットワーク受信接続を許可しますか?」という警告ポップアップが出現した。

実行の度に許可を押すのが面倒なので、解消した方法を残す。

環境

OS:macOS Venture13.4.1
nodejs: 16.0.0
puppeter: 19.6.3

手順概要

  1. macのキーチェーンを新規作成
  2. 作成したキーチェーンの「信頼」を変更
  3. puppeteer内で使用しているChromiumのパスを取得
  4. puppeteer内で使用しているChromiumに、作成したキーチェーンをアタッチ

手順詳細

1.macのキーチェーンを新規作成

Finder->アプリケーション->ユーティリティ->キーチェーンアクセスを実行します。
[キーチェーンアクセス]メニュー->証明書アシスタント->[証明書を作成…]をクリックする。

名前 SaijoCertなど、適当に
固定名のタイプ 自署署名ルート
証明書のタイプ コード署名
デフォルトを無効化 チェックON

  • 作成]ボタンを押す。
  • 警告メッセージが表示されるので、[続ける]ボタンを押し、先に進む。
    シリアル番号はそのまま、有効日数は3650日等、長めのものにして、[続ける]ボタンを押す。
  • メールアドレスが適切なものかを確認し、[続ける]ボタンを押す。組織や都市、都道府県等は省略しても入力してもどちらでも良い
  • アルゴリズムはRSAのままで良いので[続ける]ボタンを押す。
  • 鍵用途拡張領域の画面はそのままで良いので[続ける]ボタンを押す。
  • 次の鍵用途拡張領域の画面もそのままで良いので[続ける]ボタンを押す。
  • 次の鍵用途拡張領域の画面もそのままで良いので[続ける]ボタンを押す。
  • 次のサブジェクト代替名拡張領域の画面もそのままで良いので[続ける]ボタンを押す。
  • キーチェーンの種類は[ログイン]のままで良いので[作成]ボタンを押す。
  • [完了]ボタンを押して、キーチェーンアクセスを終了する。

[1]

2.作成したキーチェーンの「信頼」を変更

さらに、秘密鍵を右クリックし、情報を見る、からアクセス制御のタブへ行き、「この項目の使用をすべてすべてのアプリケーションに許可」をcheckします。

[1:1]

自分の場合は画像の様に、「信頼」タブの中の「この証明書を使用する時」を「常に信頼」に変更した。

3.puppeteer内で使用しているChromiumのパスを取得

itermでfind / -name Chromium.appを実行
自分の環境では下記の2つが検出できた。
({ユーザー名}は実際にはtarosatoのような文字列)

  • /Users/{ユーザー名}/.cache/puppeteer/chrome/mac-1083080/chrome-mac/Chromium.app
  • /System/Volumes/Data/Users/{ユーザー名}/.cache/puppeteer/chrome/mac-1083080/chrome-mac/Chromium.app

おそらくどちらを使用しても良いが、自分は1つ目を使用して問題なかったので、2つ目については確認していない。

4.puppeteer内で使用しているChromiumに、作成したキーチェーンをアタッチ

itermでcodesign -s "{自分で作成したキーチェーンの名前}" -f /Users/{ユーザー名}/.cache/puppeteer/chrome/mac-1083080/chrome-mac/Chromium.app --deepとコマンド実行。

以上で手順は完了した。
このあと初回のpuppetter起動時に「アプリケーション“Chromium.app”へのネットワーク受信接続を許可しますか?」という警告ポップアップが一度だけ表示されたが、そこで許可を押すと以後は表示されなくなった。

備考

Chromium.appが.cache内にあるのが最初ひっかったが、公式ドキュメントに

When you install Puppeteer, it automatically downloads a recent version of Chrome for Testing (~170MB macOS, ~282MB Linux, ~280MB Windows) that is guaranteed to work with Puppeteer. The browser is downloaded to the $HOME/.cache/puppeteer folder by default (starting with Puppeteer v19.0.0).

[2]
とあるので仕様なのだと理解した。

懸念点として、.cacheということは一定時間経過などで消去され、その際はpuppetterが自動で最新のbrowserをダウンロードしてくるのかもと想像しており、その際は、定期的に同じ手順でキーチェーンの割当を行わないと再度同じ事象が発生するかもと考える。

脚注
  1. 引用元(https://note.com/nobuhirosaijo/n/n13841743cb60) ↩︎ ↩︎

  2. 引用元(https://pptr.dev/) ↩︎

Discussion