Решение ошибки “unable to get local issuer certificate” […

スポンサーリンク

unable to get local issuer certificate: Решение ошибки

Обзор Ошибки

Ошибка “unable to get local issuer certificate” возникает, когда приложение или библиотека не может проверить цепочку доверия для SSL-сертификата. Это может произойти в различных ситуациях, например, при использовании Git, cURL или npm. В большинстве случаев причина заключается в том, что не хватает корневого сертификата или настройки SSL неверны.

Распространенные Причины

  • Отсутствие корневого сертификата: Сертификат, который вы используете, может не быть подписан на локальном уровне.
  • Неверные настройки SSL: Неправильные параметры конфигурации могут блокировать проверку сертификатов.
  • Использование самоподписанных сертификатов: Если вы используете самоподписанные сертификаты, они могут не распознаваться системой.
  • Настройки окружения: В некоторых случаях среда выполнения (например, PHP или Node.js) может быть неверно настроена для работы с SSL.

Методы Решения

Метод 1: Изменение бэкенда SSL для Git

  1. Откройте терминал или Git Bash.
  2. Введите следующую команду:
    bash
    git config --global http.sslbackend schannel
  3. Проверьте, решена ли проблема.

Пояснение: По умолчанию Git может использовать бэкенд криптографии Linux, который не всегда совместим с Windows.

Метод 2: Отключение проверки SSL в Git

  1. Откройте Git Bash.
  2. Выполните следующие команды:
    bash
    git config --global http.sslVerify false
  3. Когда проблема будет решена, рекомендуется снова включить проверку:
    bash
    git config --global http.sslVerify true

Важно: Отключение проверки SSL открывает возможность для атак типа “человек посередине”. Используйте этот метод временно.

Метод 3: Настройка конфигурации cURL и OpenSSL

  1. Найдите файл php.ini и откройте его.
  2. Добавьте следующие строки:
    “`ini
    [curl]
    curl.cainfo = “C:\xampp\php\extras\ssl\cacert.pem”

[openssl]
openssl.cafile = “C:\xampp\php\extras\ssl\cacert.pem”
``
3. Скачайте
cacert.pem` с официального сайта cURL и сохраните его в указанной директории.
4. Перезапустите сервер (например, Apache).

Пояснение: Это позволяет PHP и cURL использовать правильные корневые сертификаты.

Метод 4: Настройка сертификатов в WAMP

  1. Убедитесь, что у вас установлен модуль mod_ssl для Apache.
  2. В файле httpd.conf убедитесь, что строка LoadModule ssl_module modules/mod_ssl.so не закомментирована.
  3. В php.ini добавьте строку:
    ini
    extension=php_openssl.dll
  4. Перезапустите сервер WAMP.

Метод 5: Установка сертификатов для Python

  1. Откройте терминал и выполните следующую команду:
    bash
    open /Applications/Python\ 3.7/Install\ Certificates.command
  2. Обновите пакет certifi:
    bash
    pip install --upgrade certifi

Пояснение: Это обеспечит корректную работу SSL в Python, особенно при использовании библиотек, таких как requests.

Метод 6: Настройка npm

  1. Откройте терминал.
  2. Выполните следующую команду:
    bash
    npm config set strict-ssl false
  3. Если нужно, настройте реестр npm:
    bash
    npm config set registry http://registry.npmjs.org/

Важно: Отключение строгой проверки SSL также может подвергнуть вас риску атак.

Советы по Предотвращению

  • Используйте только доверенные сертификаты, выданные сертификационными центрами.
  • Регулярно обновляйте корневые сертификаты на вашем сервере.
  • Избегайте отключения проверки SSL, если это возможно.
  • Настройте окружение (например, PHP или Node.js) для работы с актуальными сертификатами.

Резюме

Ошибка “unable to get local issuer certificate” может возникать в различных ситуациях с использованием SSL. В этой статье были рассмотрены несколько методов решения данной проблемы, включая изменение настроек Git, конфигурацию cURL и OpenSSL, а также рекомендации по установке сертификатов для Python и npm. Соблюдение этих рекомендаций поможет избежать подобных проблем в будущем.

コメント

タイトルとURLをコピーしました