企業環境のWSL2でdocker pullできない場合の対処方法
企業環境で組織内で使用するための証明書を利用している場合、WSL2上からのdocker pull
で次のようなエラーが発生することがあります。
docker: error pulling image configuration: download failed after attempts=6: tls: failed to verify certificate: x509: certificate signed by unknown authority
WSL2はWindowsの証明書ストアを直接参照しないため、Windows側に中間CA証明書があってもWSL2内にコピーしないとTLS検証は通りません。したがって、Windows側で証明書を追加した後は、WSL2内のCAストアにも同じ証明書を追加する必要があります。
WSL2への証明書適用方法
Ubuntuの場合になります。
- 証明書をローカルCA証明書ディレクトリにコピーする
sudo mv certificate.crt /usr/local/share/ca-certificates/certificate.crt
- 証明書を信頼ストアに追加する
sudo update-ca-certificates
WSL2のネットワークをミラーモードにする
ミラーモードとは、Windows側のIPアドレスとWSL2側のIPアドレスを一致させることのようです。ただしミラーモードはWindows11の新しいバージョンでないと利用できない可能性があります。(本記事では、24H2で動作確認)
参考
ミラーモード手順
C:\Users\%UserProfile%.wslconfigに以下を追加します
[wsl2]
networkingMode=mirrored
WSL2を再起動します。Windows Powershellから次のコマンドを実行した後、WSL2を起動してください。
wsl --shutdown
WSL2上で次のコマンドを使ってIPアドレスを確認し、WindowsとIPアドレスが同じことを確認します。(eth0:
などを参照)
ip addr