技術的な話

VSCodeの拡張機能がUNABLE_TO_VERIFY_LEAF_SIGNATUREで動かなかったときの解決方法

Proxy周りで良くありますよね。
VSCodeや拡張機能はElectron(Node.js)で動作しているので、Node.jsのエラーです。

中間証明書が設定されていないと?このエラーが出るようです。
あとオレオレ証明書のサーバにアクセスしたときですかね。

ちなみにきちんとProxy設定はしてあったにも関わらず今回のエラーが出てきました。

今回出会ったケース

当初VSCodeでCloud Shellにアクセスしてコマンド経由で各種リソースを操作しようと考えていました。
今回のエラーはVSCodeに拡張機能(Azure Tools)を入れてCloud Shellを起動しようとした際に発生しました。厳密に言うと、Cloud Shellを起動させるためにAzureの認証サーバにアクセスするタイミングです。

ちなみにCtrl + Shift + pでコマンドパレットを開いて「Azure: Open Bash in Cloud Shell」を選択するとCloud Shellを起動することができます。初回は確かブラウザが立ち上がり、ログインを求められたかと思います。

エラー内容

エラー内容は以下の通り。

Socket error:{"code":"UNABLE_TO_VERIFY_LEAF_SIGNATURE"}

解決方法(非推奨)

拡張機能のコードを少し弄るのであまりおススメはできないですが、とりあえずの暫定回避策としては有効です。この対策を実施するとCloud Shell起動時に警告もしっかり出ます。
動作には問題ないですが、セキュリティ的に気を付けた方が良いよという内容です。

下記で拡張機能のプログラムファイルを開きます。

$ vi /home/[user]/.vscode-server/extensions/ms-vscode.azure-account-x.x.x/dist/cloudConsoleLauncher.js

x.x.xは拡張機能のバージョンになります。

ファイルが開いたら下記を先頭に追記します。minify化されていますが問題なく追記は可能です。

process.env["NODE_TLS_REJECT_UNAUTHORIZED"]=0;

以上で再度Cloud Shellを起動させると警告は出つつも開けます。

今回は非推奨の解決方法でしたが、この方法だと拡張機能のバージョンが上がる度に書き換える必要があるのでもう少しキチンとした解決方法を探します

-技術的な話
-,