Таким образом в школе мы должны установить сертификат доступу 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
. Но я хотел бы видеть ответ для всего, не только взлом мерзавца
TL; DR
Для всего для работы и не только браузер необходимо добавить что сертификат CA доверяемому репозиторию CA системы.
В человечности:
, Почему
Позволяют мне объяснить, что продолжается также, таким образом, другие плакаты видят, почему им не нужен никакой сертификат для использования GitHub по HTTPS.
, Что продолжается, существует то, что Ваша школа прерывает всю связь SSL, вероятно, для контроля их.
, Чтобы сделать это, что они делают, является в сущности "человеком в среднем" нападении, и из-за этого, Ваш браузер жалуется законно, что он не способен проверять сертификат GitHub. Ваш школьный прокси вынимает сертификат GitHub и вместо этого предоставляет его собственный сертификат
, Когда Ваш браузер пытается проверить, что школа предоставила сертификат против CA, который подписал сертификат GitHub, это законно перестало работать.
Так, для соединения SSL для работы в школе необходимо сознательно принять это нападение "MITM". И Вы делаете это путем добавления сертификата CA школы как доверяемого.
, Когда Вы полагаете, что школа CA, Ваша проверка поддельного сертификата GitHub будет работать, так как поддельный сертификат GitHub будет проверен школой Приблизительно
знать, что соединение SSL больше не безопасно, так как Ваш школьный администратор сможет прервать все Ваши зашифрованные соединения.
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
, как упомянуто в ответе Телеграфистов. Вы будете видеть в выводе, что сертификат был добавлен.
Расширения .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
Для доступа к веб-сайту с https
, используете ли Вы CLI или браузер GUI, Вам не нужен Ваш школьный сертификат.
Для использования git
через http (s) Вы должен зарегистрировать Ваш открытый ключ в Ваших настройках профиля на GitHub.
<час>
Попытка это:
sudo apt-get install w3m
w3m https://github.com/
†¦ работает без дополнительно сертификат.
Я использую следующую компиляцию предыдущих ответов:
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
те же имена хостов.
У меня была подобная проблема, где установка сертификата в 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 файла прежде, чем внести изменения.
Если что-нибудь не является ясным или не надлежащим, исправьте меня.
Я считал все решения и решил как это;
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