Поэтому в школе нам нужно установить сертификат для доступа к сайтам 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
Как мне импортировать сертификат, чтобы удалить это? Импорт должен быть в состоянии подтвердить подлинность для меня. Кроме того, это .cer
файл, поэтому ответ .crt
не будет работать. Кроме того, я не хочу, чтобы шаги по настройке git, как у меня уже есть. Я хочу знать, возможно ли это сделать. Или я могу просто полностью отключить аутентификацию с помощью 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
. Но я хотел бы увидеть ответ на все вопросы, а не просто мерзавец
источник
.crt
. Мне нужно.cer
Ответы:
TL; DR
Чтобы все работало, а не только ваш браузер, вам нужно добавить этот сертификат CA в доверенный репозиторий системы.
В убунту:
Почему
Позвольте мне также объяснить, что происходит, поэтому другие авторы понимают, почему им не нужен сертификат для использования Github поверх HTTPS.
Что происходит, так это то, что ваша школа перехватывает все соединения SSL, возможно, для их мониторинга.
Для этого то, что они делают, по сути, является атакой «человек посередине», и из-за этого ваш браузер справедливо жалуется, что он не может проверить сертификат github. Ваш школьный прокси получает сертификат github и вместо этого предоставляет свой собственный сертификат.
Когда ваш браузер пытается проверить предоставленный школой сертификат против CA, который подписал сертификат github, он по праву завершается неудачей.
Итак, чтобы SSL-соединение работало в школе, вам нужно сознательно принять эту атаку «MITM». И вы делаете это, добавляя сертификат CA школы в качестве доверенного.
Если вы доверяете этому школьному CA, ваша проверка сертификата поддельного github будет работать, поскольку сертификат поддельного github будет подтвержден школьным центром сертификации.
Помните, что SSL-соединение больше не является безопасным, поскольку администратор вашей школы сможет перехватить все ваши зашифрованные соединения.
источник
/usr/local/share/ca-certificates/
. Посмотритеman update-ca-certificates
, что говорит о существовании белого списка,/usr/share/ca-certificates/
но о том, как он неявно доверяет всему в/usr/local/share/ca-certificates/
каталоге./usr/local/share/ca-certificates
я должен был использоватьsudo dpkg-reconfigure ca-certificates
его для получения CA.На
ca-certificates
упаковке есть инструкцииREADME.Debian
:Обратите внимание, что здесь упоминается каталог, отличный от других ответов здесь:
После копирования в него
/usr/local/share/ca-certificates/
вы можете обновить разрешения сертификата и запустить,sudo update-ca-certificates
как указано в ответе Telegraphers. В выводе вы увидите, что сертификат был добавлен.источник
Расширения .crt, .pem и .cer являются взаимозаменяемыми, просто измените расширение имени файла, они имеют одинаковую форму. Попробуй это:
источник
openssl(1)
для преобразования сертификата в формат PEM. Run:$ openssl -in mycert.cer -inform DER -out mycert.pem -outform PEM
openssl x509 -inform DER -in certificate.cer -out certificate.pem
Я использую следующую подборку предыдущих ответов:
Это может быть изменено, чтобы быть однострочным.
Часто оба
site.example.com
иexample.com
одинаковые имена хостов.источник
Я прочитал все решения и решил, как это;
источник
У меня была похожая проблема, когда установка сертификата в Firefox и Google Chrome работала, но обновление в терминале
sudo apt-get update
не работало и выдавало 403 ошибки запрещенного IP. У меня тоже был файл sample.cer. Поэтому в основном я должен сначала преобразовать его в .crt.Тем не менее, пока
sudo dpkg-reconfigure ca-certificates
я не смог найти требуемый сертификат. Проблема со мной в том, что я копировал сертификат не в том месте.Вместо того, чтобы копировать это в
$/usr/share/ca-certificates
Я копировал это в$/usr/local/share/ca-certificates
Но, поместив это в правильное место, решил мою проблему. Но я все еще не могу обновить пакеты или установить новые пакеты.Быстрое решение (для меня):
Использование ftp вместо http
и выше команда сработала. Пожалуйста, сделайте копию файла sources.list перед внесением изменений.
Если что-то не понятно или не правильно, поправьте меня.
источник
Для доступа к веб-сайту
https
, независимо от того, используете ли вы CLI или GUI-браузер, вам не нужен ваш сертификат shool.Для использования
git
через http (s) вам необходимо зарегистрировать свой открытый ключ в настройках своего профиля на GitHub .Больше информации здесь . Измените свой профиль GitHub здесь .
Попробуй это:
… Работает без дополнительного сертификата.
источник