Как добавить самоподписанный сертификат в пакет в git-bash?

Вопрос или проблема

Попытка обновить git на машине с Windows в git-bash с помощью git update-git-for-windows завершается неудачей с сообщением от curl:

curl: (60) Проблема с SSL сертификатом: самоподписанный сертификат в цепочке сертификатов
Подробности здесь: https://curl.se/docs/sslcerts.html

curl не смог проверить легитимность сервера и, следовательно, не смог
установить безопасное соединение с ним. Чтобы узнать больше об этой ситуации и
как это исправить, пожалуйста, посетите указанную выше веб-страницу.

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

Где мне найти пакет сертификатов, используемый curl или git, и добавить в него мой собственный доверенный корневой сертификат?

Первый шаг — узнать о вашей конфигурации. Вы увидите ваши значения конфигурации и место их хранения.

$ git config --list --show-origin --show-scope
system file:C:/Program Files/Git/etc/gitconfig <key>=<value>
system file:C:/Program Files/Git/etc/gitconfig <key>=<value>
...
global file:C:/Users/<USERNAME>/.gitconfig <key>=<value>
global file:C:/Users/<USERNAME>/.gitconfig <key>=<value>
...

Ищите ключи http.sslbackend и http.sslcainfo.
Только если http.sslbackend=openssl, тогда http.sslcainfo будет иметь значение.

Вот как это будет выглядеть в командной строке:

system  file:C:/Program Files/Git/etc/gitconfig http.sslbackend=openssl
system  file:C:/Program Files/Git/etc/gitconfig http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

Теперь вы также видите файл, в который можете добавить свой CA, откройте ca-bundle.crt и добавьте свой сертификат компании в конец.

Теперь проблема с самоподписанным сертификатом в цепочке сертификатов больше не возникнет.

Ответ или решение

Как добавить самоподписанный сертификат в пакет сертификатов в git-bash

При попытке обновления Git на Windows с использованием команды git update-git-for-windows может возникнуть ошибка, связанная с curl, в виде:

curl: (60) SSL certificate problem: self signed certificate in certificate chain

Это происходит, потому что cURL не может проверить подлинность сервера, поскольку используется самоподписанный сертификат. Если у вас нет возможности изменить это, вы можете добавить свой сертификат в доверенные.

Вот пошаговая инструкция о том, как это сделать:

  1. Определите настройки конфигурации Git:
    Вам нужно узнать, какие настройки применяются к вашему Git. Выполните следующую команду в git-bash, чтобы получить список конфигураций и информацию о том, где они хранятся:

    git config --list --show-origin --show-scope

    В выводе вы увидите расположение файлов конфигурации и ключи, такие как http.sslbackend и http.sslcainfo. Вам важно убедиться, что http.sslbackend установлено в openssl, поскольку в противном случае http.sslcainfo не будет учитывать указанный файл сертификатов.

  2. Найдите файл с сертификатами:
    Если вы видите следующее в выводе:

    system  file:C:/Program Files/Git/etc/gitconfig http.sslbackend=openssl
    system  file:C:/Program Files/Git/etc/gitconfig http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

    Это указывает на то, что ca-bundle.crt — это файл, в который вы можете добавить свой сертификат.

  3. Добавьте свой сертификат:
    Откройте файл ca-bundle.crt, который находится по пути C:/Program Files/Git/mingw64/ssl/certs/ в текстовом редакторе с правами администратора.

    В конце файла добавьте ваш самоподписанный сертификат. Сертификат должен быть в формате PEM. Обычно это включает строку -----BEGIN CERTIFICATE----- в начале и строку -----END CERTIFICATE----- в конце.

  4. Сохраните изменения:
    После добавления сертификата сохраните файл и закройте текстовый редактор.

Теперь Git должен снова работать без ошибок, связанных с самоподписанными сертификатами. Вы сможете обновить Git и выполнять команды без дальнейших проблем с SSL.

Если вы по-прежнему сталкиваетесь с проблемами, убедитесь, что пути и версии вашего сертификата верны, а также что вы используете последнюю версию Git для Windows. В случае необходимости обновите его с официального сайта.

Оцените материал
Добавить комментарий

Капча загружается...