【ComfyUI】ManagerでSSL証明書エラーが発生する原因と解決法

問題の内容

ComfyUI Managerを使用してカスタムノードやモデルをダウンロードしようとした際に、ターミナルやログ画面に以下のようなSSL証明書に関連するエラーが表示される場合があります:

FETCH DATA from: /home/tanghe/tools/comfy/ComfyUI/custom_nodes/ComfyUI-Manager/extension-node-map.json [DONE]
FETCH DATA from: /home/tanghe/tools/comfy/ComfyUI/custom_nodes/ComfyUI-Manager/.cache/4245046894_model-list.json [DONE]
Install model 'diffusers/stable-diffusion-xl-1.0-inpainting-0.1 (UNET/fp16)' into '/home/tanghe/tools/comfy/ComfyUI/models/unet/xl-inpaint-0.1/diffusion_pytorch_model.fp16.safetensors' [ERROR]
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)>

このエラーは、HTTPS接続時にSSL証明書の検証が正常に完了できない場合に発生します。モデルのダウンロードやカスタムノードのインストールが正常に完了せず、ワークフローの実行に必要なリソースが得られないという問題につながります。

結論

SSL証明書の検証エラーの主な原因は以下の2点です:

  1. PythonのSSLモジュールがシステム証明書を正しく読み込めていない
  2. プロキシやファイアウォールがSSL接続を中途で干涉している

最も簡単な対処法は、PythonのSSL検証を無効化するか、システム証明書を更新することです。以下に具体的な解決手順を説明します。

具体的な解決手順

方法1: SSL証明書の更新(推奨)

まず、システム全体の証明書を更新尝试してください。OSに応じた以下のコマンドを実行します:

Windowsの場合

# PowerShellでWindowsアップデート旗下的証明書を更新
Update-WindowsCertStore

Ubuntu/Debianの場合

sudo apt update
sudo apt install --reinstall ca-certificates
sudo update-ca-certificates

macOSの場合

# Homebrewで証明書を更新
brew install ca-certificates
/usr/local/opt/ca-certificates/bin/cert-sync ~/.python/etc/ssl/certs/certifi/cacert.pem

方法2: Pythonのcertifiを使用する場合

ComfyUIが使用しているPython環境の証明書を更新します:

# pipでcertifiを更新
pip install --upgrade certifi

# 証明書の場所を確認
python -c "import certifi; print(certifi.where())"

出力された証明書の メモしてください。

方法3: 環境変数でSSL検証を無効化(緊急時用)

上記方法で解決しない場合、一時的な回避策としてSSL検証を無効にできます。注意:セキュリティリスクが伴うため、一時的な使用に留めてください。

方法3-1: 環境変数を設定する場合

# Windows
set PYTHONHTTPSVERIFY=0

# Linux/Mac
export PYTHONHTTPSVERIFY=0

方法3-2: ComfyUI起動時にPythonオプションを渡す場合

ComfyUIの起動スクリプト(run_cpu.batまたはrun_nvidia.bat)を編集し、以下のオプションを追加します:

# run_nvidia.bat の編集例
...
python -s -c "import ssl; ssl._create_default_https_context = ssl._create_unverified_context" %*

または、ComfyUIのPython起動コマンドを以下のように変更します:

python -c "import ssl; ssl._create_default_https_context = ssl._create_unverified_context" main.py --force-fp16

方法4: GitのSSL設定を確認する場合

ComfyUI Managerが内部でGitを使用している場合、GitのSSL設定も確認が必要です:

# GitのSSL検証を一時的に無効化(推奨されません)
git config --global http.sslVerify false

# 推奨:GitのSSL証明書を指定
git config --global http.sslCAInfo /path/to/cacert.pem

補足・注意点

バージョン依存について

  • ComfyUIのバージョン:古いバージョンのComfyUIではSSL処理に問題がある場合があります。最新バージョンへの更新を検討してください
  • Pythonのバージョン:Python 3.7以前ではSSL処理の仕様が異なるため、Python 3.8以上へのアップデートを推奨します
  • ComfyUI Managerのバージョン:最新バージョンに更新することでSSL関連の問題が解決する場合があります

環境別の注意点

  • 企業環境/プロキシ環境:社外ネットワークから接続する場合、プロキシサーバーがSSL検査を行っている可能性があります。IT部門に相談してください
  • ポータブル版ComfyUI:インストール版と異なり、ポータブル版はシステム証明書を自行で管理する必要があります
  • WSL2環境:Windows Subsystem for Linuxを使用している場合、Windows側の証明書をWSLにインポートする必要があります

セキュリティ上の注意

SSL検証を無効にする方法は、一時的な回避策としてのみ使用してください。SSL検証を無効にすると、中間者攻撃(Man-in-the-Middle Attack)のリスクにさらされます。問題が解決した場合は、SSL検証を再度有効に戻すことを忘れないでください。

# SSL検証を再度有効に戻す
git config --global http.sslVerify true
# 環境変数も削除してください

その他の確認事項

  • ファイアウォールやアンチウイルスソフトウェアがSSL接続をブロックしていないか確認する
  • ルーターやVPNがSSL接続に問題を与えていないか確認する
  • 時間(日付/時刻)が正確に設定されているか確認する(SSL証明書の検証に必要)

参考元

おすすめ環境

🔧 快適な開発環境のために

本記事の手順をスムーズに進めるために、以下のスペックを推奨します。

この記事は役に立ちましたか?