Microsoft WinGet package manager failing from expired SSL certificate
2023/02/11 BleepingComputer — Microsoft WinGet Package Manager で発生した問題は、WinGet CDN の SSL/TLS 証明書の有効期限が切れた後の、パッケージのインストール/アップグレードに関するものだ。2020年5月にオープンソースとしてリリースされた Windows Package Manager (WinGet) は、コマンドラインからユーザーが、ダイレクトにアプリケーションをインストールするためのものだ。

CDN の SSL 期限切れで WinGet がダウン
2月11日の土曜日の深夜から、WinGet 経由でアプリをインストール/アップグレードすると問題が発生するという、Windows ユーザーから報告が始まった。WinGet ユーザーの Tiger Wang が GitHub で公開した、以下のような単純な WinGet コマンドを実行すると、コマンドラインで “InternetOpenUrl() failed “というエラーが発生するスクリーンショットである。
winget upgrade --all --verbose
.

この報告には、同じ問題を経験した他のユーザーのコメントも寄せられている。この問題は、WinGet CDN の SSL/TLS 証明書が有効期限切れになっていることに関連しているようだ。
BleepingComputer が Chrome で CDN の URL https://cdn.winget.microsoft.com にアクセスしたところ、以下のエラーを受け取った。

この警告と証明書の詳細の2点から、WinGet CDN の証明書が週末に有効期限を迎えていることが確認された。

一時的な解決策とは?
Microsoft が SSL 証明書を更新するまでの間、この状況に対処する別の回避策がある。それは、cdn.winget.microsoft.com だけに依存しているのではなく、以下のソース URL を WinGet のソースリストに追加するものだ。そうすれば、WinGet は、この代替サーバからパッケージを取得できる。このサーバは、執筆時点で有効な証明書を持っている。
GitHub ユーザーの qilme は、「以下のコマンドを使って、たとえば https://winget.azureedge.net/cache のようなソースを追加できる」とアドバイスしている。
sudo winget source add -n winget https://winget.azureedge.net/cache
Winget ツールの source コマンドは、ユーザーによる Windows Package Manager ソースの管理を可能にする。source コマンドを使用すると、WinGet で使用するリポジトリの追加/リスト/編集/削除/リセット/エクスポートなどが実行できるようになる。
注意:上記のコマンドを実行する際に、PowerShell で管理者アカウントによりコマンドが実行されている場合には ‘sudo’ は必要ない。エラーが発生した場合は、新しい azureedge リンクを追加する前に、デフォルトの WinGet ソースを削除する。
問題の azureedge URL は WinGet の CDN のエイリアスだが、有効な証明書があるために、WinGet 開発者にとって有効なソリューションとなる。

Microsoft がプライマリ CDN の証明書を更新したら、ユーザーはオプションとして、別のコマンドを実行してソース URL のリセットを選択できる。GitHub ユーザーである Adam Langbert は、「デフォルトに戻したいときには、いつでも winget source reset –force (as admin) を実行できる」とアドバイスしている。
2022年11月に WinGet は、CDN がクエリーを実行した際に0バイトのデータベース・ファイルを返したことに起因する、広範な障害を発生している。
WinGet ってなんだろうと思い、調べてみたら「winget ツールを使用したアプリケーションのインストールと管理」というドキュメントがありました。そこには、「winget コマンド ライン ツールを使用すると、Windows 10/11 コンピューター上でアプリケーションを検出/インストール/アップグレード/削除/構成することが可能。 このツールは、Windows パッケージ・マネージャー・サービスに対するクライアント・インターフェイスである」と記されています。SSL/TLS 証明書の有効期限切れというのは、たまに、よく聞く話ですが、Microsoft もやるんだと思ってしまいました。

You must be logged in to post a comment.