Github: проверка сертификата сервера

Я только что создал учетную запись github и репозиторий в ней, но при попытке создать локальную рабочую копию с помощью URL-адреса рекомендации через

git clone https://github.com/<user>/<project>.git

Я получаю сообщение об ошибке, например

fatal: невозможно получить доступ к https://github.com/<user> /<project> .git ': проверка сертификата сервера не удалась. CAfile:/home/<user> /.ssl/trusted.pem CRLfile: none

Я на Debian Jessie, и я ожидал, что и Debian, и GitHub будут предоставлять/полагаться на выбор общепринятых ЦС, но, судя по всему, моя система не доверяет сертификату GibHub.

Любой простой способ исправить это (без часто рекомендуемого "GIT_SSL_NO_VERIFY = true" взлома и подобных обходов)?

EDIT:

Дополнительная информация:

  • Установлен пакет ca-сертификата.
  • Установка сертификатов cacert.org как предложенный @VonC ничего не изменил.
  • Мой личный файл ~/.ssl/trusted.pem содержит несколько записей, но должен быть честный, я не помню, откуда появились дополнительные сертификаты...
  • При удалении ~/.ssl/trusted.pem сообщение об ошибке git изменяется на

    fatal: unable to access 'https://github.com/tcrass/scans2jpg.git/': Problem with the SSL CA cert (path? access rights?)
    

EDIT:

Совет @VonC относительно опции git https.sslCAinfo поставил меня на правильный путь - я просто добавил загруженные CA cacert.org к моему trusted.pem, и теперь git больше не жалуется.

Ответ 1

Прежде всего убедитесь, что на вашем Debian установлены сертификаты в /etc/ssl/certs.

Если нет, переустановите их:

sudo apt-get install --reinstall ca-certificates

Поскольку этот пакет не включает корневые сертификаты, добавьте:

sudo mkdir /usr/local/share/ca-certificates/cacert.org
sudo wget -P /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt
sudo update-ca-certificates

Убедитесь, что ваш git ссылается на эти CA:

git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt

Jason C упоминает другую потенциальную причину (в комментариях):

Это были часы. Сервер NTP был отключен, системные часы были установлены неправильно, я не заметил или не подумал проверить, изначально, и неправильное время привело к сбою проверки.

Сертификаты чувствительны к времени.

Ответ 2

Вы также можете отключить проверку SSL, набрав:

git config --global http.sslverify false

спасибо:)

Ответ 3

Это может быть также самозаверяющий сертификат и т.д. Отключение проверки SSL во всем мире небезопасно. Вы можете установить сертификат, чтобы он был виден для системы, но сертификат должен быть абсолютно правильным.

Или вы можете клонировать один раз параметр конфигурации, поэтому команда будет:

git clone -c http.sslverify=false https://myserver/<user>/<project>.git;

GIT будет помнить ложное значение, вы можете проверить его в файле <project>/.git/config.