Tak więc w szkole musimy zainstalować certyfikat, aby uzyskać dostęp do stron https. W Firefoksie mogę zaimportować certyfikat. Nie mogę tego jednak zrobić za pomocą wiersza polecenia. Na przykład po uruchomieniu git push
otrzymuję:
fatal: unable to access 'https://github.com/user/repo': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Jak zaimportować certyfikat, aby go usunąć? Import musi być dla mnie uwierzytelniony. Jest to również .cer
plik, więc odpowiedź na .crt
nie zadziała. Nie chcę też kroków, jak skonfigurować git, jak już to zrobiłem. Chcę wiedzieć, czy można to zrobić. Czy mogę po prostu git
całkowicie wyłączyć uwierzytelnianie za pomocą polecenia i sprawić, że będzie ono ignorować certyfikaty, tak jak w przypadku odpowiedzi tutaj? Nie chcę też, aby strona ładowała się, ustawiłem firefox, aby to zrobić. Chcę, aby git push
polecenie podało standardowe dane wyjściowe, takie jak:
[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
Uwaga: dowiedziałem się git config --global http.sslverify false
. Ale chciałbym zobaczyć odpowiedź na wszystko, nie tylko na hack
źródło
.crt
. Potrzebuję.cer
Odpowiedzi:
TL; DR
Aby wszystko działało, a nie tylko przeglądarka, musisz dodać ten certyfikat CA do zaufanego repozytorium CA systemu.
W ubuntu:
Dlaczego
Pozwól mi wyjaśnić, co się dzieje, aby inni plakaty zrozumieli, dlaczego nie potrzebują żadnego certyfikatu, aby korzystać z Github przez HTTPS.
To, co się tam dzieje, polega na tym, że twoja szkoła przechwytuje całą komunikację SSL, prawdopodobnie w celu ich monitorowania.
Aby to zrobić, to w istocie atak typu „człowiek w środku”, dlatego przeglądarka słusznie narzeka, że nie jest w stanie zweryfikować certyfikatu github. Twój szkolny pełnomocnik wyciąga certyfikat github i zamiast tego wydaje własny certyfikat.
Gdy przeglądarka próbuje zweryfikować certyfikat szkoły dostarczony przez urząd certyfikacji, który podpisał certyfikat github, nie udaje się to.
Aby połączenie SSL działało w szkole, musisz świadomie zaakceptować atak „MITM”. Robisz to, dodając szkolny certyfikat CA jako zaufany.
Gdy zaufasz temu szkolnemu urzędowi certyfikacji, weryfikacja fałszywego certyfikatu github będzie działać, ponieważ fałszywy certyfikat certyfikatu github zostanie zweryfikowany przez szkolny urząd certyfikacji.
Należy pamiętać, że połączenie SSL nie jest już bezpieczne, ponieważ administrator szkoły będzie w stanie przechwycić wszystkie zaszyfrowane połączenia.
źródło
/usr/local/share/ca-certificates/
. Zobaczman update-ca-certificates
, która mówi o istnieniu białej listy,/usr/share/ca-certificates/
ale o tym, jak domyślnie ufa wszystkim w/usr/local/share/ca-certificates/
katalogu./usr/local/share/ca-certificates
musiałem użyćsudo dpkg-reconfigure ca-certificates
go do odebrania urzędu certyfikacji.ca-certificates
Pakiet ma w swojej instrukcjiREADME.Debian
:Zauważ, że wspomina o katalogu innym niż pozostałe odpowiedzi tutaj:
Po skopiowaniu do
/usr/local/share/ca-certificates/
możesz następnie zaktualizować uprawnienia certyfikatu i uruchomićsudo update-ca-certificates
zgodnie z opisem w odpowiedzi Telegraphers. W danych wyjściowych zobaczysz, że certyfikat został dodany.źródło
Rozszerzenia .crt, .pem i .cer są wymienne, wystarczy zmienić rozszerzenie nazwy pliku, mają tę samą formę. Spróbuj tego:
źródło
openssl(1)
do konwersji certyfikatu do formatu PEM. Uruchom:$ openssl -in mycert.cer -inform DER -out mycert.pem -outform PEM
openssl x509 -inform DER -in certificate.cer -out certificate.pem
Korzystam z następującej kompilacji poprzednich odpowiedzi:
Można go zmodyfikować, aby był jednowarstwowy.
Często obie
site.example.com
iexample.com
są te same nazwy hostów.źródło
Przeczytałem wszystkie rozwiązania i tak rozwiązałem;
źródło
Miałem podobny problem, gdy instalacja certyfikatu w Firefoxie i Google Chrome działała, ale aktualizacja w terminalu
sudo apt-get update
nie działała i powodowała błędy 403 zabronionego adresu IP. Ja też miałem plik sample.cer. Zasadniczo najpierw muszę go przekonwertować na .crt.Wciąż
sudo dpkg-reconfigure ca-certificates
nie mogłem znaleźć wymaganego certyfikatu. Problem ze mną polega na tym, że kopiowałem certyfikat w niewłaściwym miejscu.Zamiast kopiować w
$/usr/share/ca-certificates
, kopiowałem w,$/usr/local/share/ca-certificates
ale umieszczenie go w odpowiednim miejscu rozwiązało mój problem. Ale nadal nie mogę zaktualizować pakietów ani zainstalować nowych pakietów.Szybka poprawka (dla mnie na):
Użycie ftp zamiast http
i powyżej polecenia działało. Zrób kopię pliku sources.list przed dokonaniem zmian.
Jeśli coś jest niejasne lub niewłaściwe, proszę mnie poprawić.
źródło
Aby uzyskać dostęp do strony internetowej
https
, bez względu na to, czy używasz przeglądarki CLI, czy GUI, nie potrzebujesz certyfikatu shool.Aby korzystać
git
z http (s), musisz zarejestrować swój klucz publiczny w ustawieniach profilu na GitHub .Więcej informacji tutaj . Zmień swój profil GitHub tutaj .
Spróbuj tego:
… Działa bez dodatkowego certyfikatu.
źródło