Как установить сертификаты для командной строки

Таким образом в школе мы должны установить сертификат доступу https сайты. В Firefox я могу импортировать сертификат. Однако я не могу сделать так с командной строкой. Например, выполнение git push Я добираюсь:

fatal: unable to access 'https://github.com/user/repo': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

Как я импортирую сертификат для удаления этого? Импорт должен смочь пройти проверку подлинности для меня. Кроме того, это - a .cer файл, таким образом, ответ для .crt не будет работать. Кроме того, я не хочу шаги о том, как установить мерзавца, как я уже имею. Я хочу знать, возможно ли сделать это. Или я могу просто отключить аутентификацию с git управляйте полностью и заставьте его проигнорировать сертификаты как то, что здесь говорит ответ? Кроме того, я не хочу, чтобы веб-страница загрузилась, я установил Firefox, чтобы сделать это. Я хочу git push команда для предоставления стандартного вывода как:

[master 630d087] message
 1 file changed, 93 insertions(+), 80 deletions(-)
 rewrite somefile (84%)
Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 978 bytes | 0 bytes/s, done.
Total 5 (delta 2), reused 0 (delta 0)
To https://github.com/User/Repo.git
   851ae39..630d087  master -> master

Примечание: Я узнал git config --global http.sslverify false. Но я хотел бы видеть ответ для всего, не только взлом мерзавца

75
задан 13 April 2017 в 05:24

7 ответов

TL; DR

Для всего для работы и не только браузер необходимо добавить что сертификат CA доверяемому репозиторию CA системы.

В человечности:

  • Переходят в/usr/local/share/ca-certificates /
  • , Создают новую папку, т.е. "sudo mkdir школа"
  • Копия .crt файл в школьную папку
  • Удостоверяется, что полномочия в порядке (755 для папки, 644 для файла)
  • Выполнение "sudo update-ca-certificates"

, Почему

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

, Что продолжается, существует то, что Ваша школа прерывает всю связь SSL, вероятно, для контроля их.

, Чтобы сделать это, что они делают, является в сущности "человеком в среднем" нападении, и из-за этого, Ваш браузер жалуется законно, что он не способен проверять сертификат GitHub. Ваш школьный прокси вынимает сертификат GitHub и вместо этого предоставляет его собственный сертификат

, Когда Ваш браузер пытается проверить, что школа предоставила сертификат против CA, который подписал сертификат GitHub, это законно перестало работать.

Так, для соединения SSL для работы в школе необходимо сознательно принять это нападение "MITM". И Вы делаете это путем добавления сертификата CA школы как доверяемого.

, Когда Вы полагаете, что школа CA, Ваша проверка поддельного сертификата GitHub будет работать, так как поддельный сертификат GitHub будет проверен школой Приблизительно

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

120
ответ дан 15 November 2019 в 23:55

ca-certificates пакет имеет инструкции в README.Debian:

, Если Вы хотите установить локальные центры сертификации, которым слепо доверят, помещает файлы сертификата как единственные файлы, заканчивающиеся .crt в /usr/local/share/ca-certificates/, и повторно выполняется update-ca-certificates.

Примечание, что это упоминает каталог, отличающийся от других ответов здесь:

/usr/local/share/ca-certificates/

После копирования в /usr/local/share/ca-certificates/ можно затем обновить полномочия сертификата и работать sudo update-ca-certificates, как упомянуто в ответе Телеграфистов. Вы будете видеть в выводе, что сертификат был добавлен.

41
ответ дан 15 November 2019 в 23:55

Расширения .crt, .pem и .cer являются взаимозаменяемыми, просто изменяют расширение файла, у них есть та же форма. Попробуйте это:

$ sudo cp mycert.cer /usr/share/ca-certificates/mycert.pem
$ sudo dpkg-reconfigure ca-certificates
$ sudo update-ca-certificates
$ git config --global http.sslCAInfo /usr/share/ca-certificates/mycert.pem
16
ответ дан 15 November 2019 в 23:55

Для доступа к веб-сайту с https, используете ли Вы CLI или браузер GUI, Вам не нужен Ваш школьный сертификат.

Для использования git через http (s) Вы должен зарегистрировать Ваш открытый ключ в Ваших настройках профиля на GitHub.

[еще 118] infos здесь . Измените свой профиль GitHub здесь .

<час>

Попытка это:

sudo apt-get install w3m
w3m https://github.com/

†¦ работает без дополнительно сертификат.

0
ответ дан 15 November 2019 в 23:55

Я использую следующую компиляцию предыдущих ответов:

sudo -i
echo | openssl s_client -showcerts -servername site.example.com -connect example.com:443 2>/dev/null | awk '/-----BEGIN CERTIFICATE-----/, /-----END CERTIFICATE-----/' >> /usr/local/share/ca-certificates/ca-certificates.crt 
update-ca-certificates

Это может быть изменено, чтобы быть остротой.

Часто оба site.example.com и example.com те же имена хостов.

5
ответ дан 15 November 2019 в 23:55

У меня была подобная проблема, где установка сертификата в Firefox и Google Chrome работала, но Обновляющий в терминале sudo apt-get update не работал и давал 403 Запрещенных ошибки IP. У меня также был sample.cer файл. Так в основном я должен преобразовать его в .crt сначала.

sudo openssl x509 -inform DER -in sample.cer -out sample.crt

Все еще при выполнении sudo dpkg-reconfigure ca-certificates Я не мог найти необходимый сертификат. Проблема со мной состоит в том, что я копировал сертификат в неправильном месте.

Вместо того, чтобы копировать его в $/usr/share/ca-certificates Я копировал его в $/usr/local/share/ca-certificates Но путем размещения его в правильное место решил мою проблему. Но я все еще не могу обновить пакеты или установить новые пакеты.

Быстрое исправление (для меня на):

Использование ftp вместо http

sudo sed -i s/http/ftp/ /etc/apt/sources.list && apt-get update

и выше команды работал. Сделайте копию sources.list файла прежде, чем внести изменения.

Если что-нибудь не является ясным или не надлежащим, исправьте меня.

1
ответ дан 15 November 2019 в 23:55

Я считал все решения и решил как это;

sudo openssl x509 -inform DER -in certificate.cer -out certificate.crt

sudo mv certificate.crt /usr/share/ca-certificate/

cd /usr/share/ca-certificate

sudo chmod 644 certificate.crt

sudo dpkg-reconfigure ca-certificates

sudo update-ca-certificates
4
ответ дан 15 November 2019 в 23:55

Другие вопросы по тегам:

Похожие вопросы: