要約
- GitHub Copilot関連の拡張をVSCode(Windows)に導入した
- 拡張導入後にGitHub Copilot拡張のログに
certificate has expired
エラーが出て拡張機能が使えない - PrismaAccessの証明書のうち期限切れのものを削除すると拡張機能が動いた。
結論
- PrismaAccessでSSLインスペクションしている環境でGitHub Copilot拡張を使う場合は、期限切れ証明書の掃除をしておこう。
やったことの詳細(読まなくていいです)
ウキウキで拡張を導入
申請をしてGitHub Copilotの利用権限を与えて貰えた。
- VSCode の Extensions を導入
- GitHub Copilot
- GitHub Copilot Chat
- GitHub Copilot拡張をインストールした後GitHubへのサインインを求められたので、流れにそって実施したところ、GitHub Copilot拡張のログに
Error: certificate has expired.
というメッセージが出力されて拡張が使える状態になっていなかった。- ワンタイムパスワードが切り替わるギリギリのタイミングで入力したから?
- 流石にないだろう。。
- PrismaAccessから切断してみたが変化なし。
- Windowsのアップデートが来ていたのでついでにPCを再起動したところ、追加操作なくVSCodeを立ち上げるとエラーなくGitHub へのサインインができていた。
- ワンタイムパスワードが切り替わるギリギリのタイミングで入力したから?
PrismaAccess接続が悪さをしている?
開発中のアプリを動かすためにPAに再接続したからだろうか、GitHub Copilot拡張のログにエラーが出力されていて機能を利用できなくなってしまった。PrismaAccess接続がダメ?
2024-02-15 10:04:48.397 [error] [ghostText] provideInlineCompletionItems: FetchError: certificate has expired ... (snip) ... at K.provideInlineCompletions (c:\Users\f-osaki\AppData\Local\Programs\ Microsoft VS Code\resources\app\out\vs\workbench\api\node\ extensionHostProcess.js:150:102255) { type: 'system', _name: 'FetchError', code: 'CERT_HAS_EXPIRED', errno: undefined, erroredSysCall: undefined }
slackのログを漁っていると、期限切れ証明書が悪さをしている場合があるので期限切れ証明書を削除すれば動作したとの情報が見つかった。(Mac環境)
期限切れ証明書の削除
Windowsで同様の対応を試してみる。
Windowsキー+Rにて「ファイル名を指定して実行」を開いて、certmgr.msc
を実行し、「信頼されたルート証明書期間」配下の「証明書」を確認する。
PrismaAccessでのSSLインスペクションに利用している証明書が3つあるのが確認できたが内2つは期限切れの模様だったのでこれらを削除してみる。
VSCodeをリロードすると、どうやら問題なく繋がったっぽい。
長時間離席時のトラブル
しばらく離席していてスクリーンロックを解除するとつながらなくなっている場合がある。
この場合、今のところVSCodeのリロードで解決できている。
2024-02-15 21:27:33.802 [error] [ghostText] provideInlineCompletionItems: FetchError: The pending stream has been canceled (caused by: self signed certificate in certificate chain) ... (snip) ... at K.provideInlineCompletions (c:\Users\f-osaki\AppData\Local\Programs \Microsoft VS Code\resources\app\out\vs\workbench\api\node\ extensionHostProcess.js:150:102255) { type: 'system', _name: 'FetchError', code: 'ERR_HTTP2_STREAM_CANCEL', errno: undefined, erroredSysCall: undefined }