概要
- Blender 5.2.0 の「エクステンションを入手」でのリモートリポジトリ取得失敗
- エクステンション一覧の非表示
- リモートリポジトリの更新失敗
- コンソールに出力された次のログ
sync: URL error (<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1032)>) reading 'https://extensions.blender.org/api/v1/extensions/'!
- リポジトリ設定または Blender 側のデータ破損に見える症状
- 実際の原因は HTTPS 通信時の SSL 証明書検証エラー
-
SSL_CERT_FILEにcertifi/cacert.pemを指定して起動し、Refresh Remoteを実行することで解消
発生環境
- Windows 11 Pro
- Blender 5.2.0
- Blender Extensions
- 対象リポジトリ:
extensions.blender.org
原因
Blender が extensions.blender.org からリポジトリ情報を取得する際、HTTPS 通信で証明書検証に失敗していた。
その結果、初回同期に必要なリポジトリ情報を取得できず、ローカルの blender_org リポジトリデータが未作成、または不完全な状態になっていた。
つまり、エクステンション一覧を取得できなかった原因は、SSL 証明書検証失敗によってリポジトリデータを取得できなかった。
Blender の Python コンソールで確認すると、次のようなエラーが出る。
sync: URL error (<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1032)>) reading 'https://extensions.blender.org/api/v1/extensions/'!
対処
SSL_CERT_FILE 環境変数に、Blender 同梱の certifi の CA 証明書ファイルを指定して Blender を起動します。
指定するファイルは次のようなものです。
certifi/cacert.pem
以下は、Blender 5.2 を標準のインストール先に入れている場合の起動用バッチファイル例です。
この内容を .bat ファイルとして保存して実行すると、SSL_CERT_FILE を一時的に指定した状態で Blender を起動できます。
@echo off
set "SSL_CERT_FILE=C:\Program Files\Blender Foundation\Blender 5.2\5.2\python\Lib\site-packages\certifi\cacert.pem"
start "Blender 5.2" "C:\Program Files\Blender Foundation\Blender 5.2\blender.exe"
Blender を起動したら、次を実行します。
Preferences
→ Extensions
→ Refresh Remote
これでリモートリポジトリの同期に成功すると、必要なリポジトリ情報がローカルに保存されます。
一度正常に同期できた後は、次回以降 SSL_CERT_FILE を指定しない通常起動でもエクステンション一覧を読み込めるようになる場合があります。
確認
Blender の Python コンソールで次を実行します。
import urllib.request
print(
urllib.request.urlopen(
"https://extensions.blender.org/api/v1/extensions/",
timeout=30,
).status
)
正常な場合は次のように 200 が返ります。
200
証明書検証に失敗している場合は、次のようなエラーになります。
sync: URL error (<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1032)>) reading 'https://extensions.blender.org/api/v1/extensions/'!
まとめ
- エクステンション一覧の非表示はリポジトリ未取得の結果だった
- 根本原因は HTTPS 通信時の SSL 証明書検証失敗だった
-
SSL_CERT_FILEにcertifi/cacert.pemを指定して起動すると回避できた -
Refresh Remoteで一度正常同期すると、以後は通常起動でも動作する場合がある