FAILED: esp-idf/mbedtls/x509_crt_bundle 报错的解决办法及信息来源
2021/11/15更新:最新的esp-idf版本应该已经修复了此问题,本人尝试了一次,直接编译没有问题
在使用ESP-IDF编译工程时遇到如下报错:
FAILED: esp-idf/mbedtls/x509_crt_bundle
cmd.exe /C "cd /D C:\Users\yahsa\Desktop\NTU\FYP\ESP_Workspace\blink\build\esp-idf\mbedtls && C:\Users\yahsa\esp.espressif\python_env\idf4.3_py3.8_env\Scripts\python.exe C:/Users/yahsa/esp/esp-idf/components/mbedtls/esp_crt_bundle/gen_crt_bundle.py --input C:/Users/yahsa/esp/esp-idf/components/mbedtls/esp_crt_bundle/cacrt_all.pem -q"
gen_crt_bundle.py: Invalid certificate in C:/Users/yahsa/esp/esp-idf/components/mbedtls/esp_crt_bundle/cacrt_all.pem
Invalid certificate
ninja: build stopped: subcommand failed.
这个问题是因为cacrt_all.pem
文件中的一个证书最近(9月30日)过期,导致编译工程失败。
解决办法为,在idf.py build
编译工程之前,输入此命令idf.py menuconfig
进行工程配置,按照如下路径进入Certificate Bundle
设置中,将Enable trusted root certificate bundle
选项取消掉,即不在此工程中启用用受信任的根证书捆绑包。
(Top) > Component config > mbedTLS > Certificate Bundle->Enable trusted root certificate bundle
在VScode中使用ESP-IDF插件也是相同的办法,打开工程后点击左下方齿轮⚙图标即可进行工程配置。