Несмотря на то, что я могу заставить Конана загрузить пакет с пульта, добавив корпоративный сертификат CA в cacert.pem
, многие из этих рецептов пакетов используют conans.tools.download()
для загрузки исходного кода с внешних сайтов.Кажется, как будто эта функция не использует cacert.pem
для своего хранилища сертификатов.
Итак, для простого примера у меня есть conanfile.txt
, который выглядит следующим образом:
[requires]
sdl2/2.0.8@bincrafters/stable
Конечно, для Visual Studio 2019 нет двоичного файла sdl2, поэтому мне нужно указать версию компилятора, тип сборки, cppstd (ну, технически, не этот, поскольку SDL2 написан на C) и т. Д., Но в более крупном проекте используется C ++, поэтомуЯ запускаю команду для сборки SDL2:
conan install .. -s compiler.version=16 -s build_type=Debug -s compiler.cppstd=17 --build
Конан прекрасно загружает пакет, так как он уважает Corp CA, который я добавил к cacert.pem
, но рецепт пакета использует tools.download()
для фактического извлеченияисточник.Это эффектно завершилось этой ошибкой:
ERROR: Error downloading file https://www.libsdl.org/release/SDL2-2.0.8.tar.gz: 'HTTPSConnectionPool(host='www.libsdl.org', port=443): Max retries exceeded with url: /release/SDL2-2.0.8.tar.gz (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)'),))'
Хотя я могу напрямую изменить рецепт, добавив verify=False
к вызову загрузки, это, очевидно, не является жизнеспособным решением.
Как это можно исправить?Я бы предпочел не отключать проверку сертификации, но на этом этапе согласился бы.