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:
Дополнительная информация:
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
.