Donc, à l'école, nous devons installer un certificat pour accéder aux sites https. Dans Firefox, je peux importer le certificat. Cependant, je ne peux pas le faire avec la ligne de commande. Par exemple, en cours d'exécution, git push
je reçois:
fatal: unable to access 'https://github.com/user/repo': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Comment importer un certificat pour le supprimer? L'import doit pouvoir s'authentifier pour moi. En outre, il s’agit d’un .cer
fichier, la réponse .crt
ne fonctionnera donc pas. En outre, je ne veux pas d'étapes sur la façon de configurer git, comme je l'ai déjà fait. Je veux savoir s'il est possible de le faire. Ou puis-je simplement désactiver git
complètement l' authentification avec la commande et lui faire ignorer les certificats, comme le dit la réponse ? De plus, je ne veux pas que la page Web se charge, j'ai configuré Firefox pour le faire. Je veux que la git push
commande donne la sortie standard comme:
[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
Note: j'ai découvert sa git config --global http.sslverify false
. Mais je voudrais voir une réponse à tout, pas seulement un git hack
la source
.crt
. J'ai besoin de.cer
Réponses:
TL; DR
Pour que tout fonctionne, et pas seulement pour votre navigateur, vous devez ajouter ce certificat de CA au référentiel de CA approuvé du système.
À Ubuntu:
Pourquoi
Laissez-moi vous expliquer ce qui se passe également, afin que les autres afficheurs comprennent pourquoi ils n’ont pas besoin de certificat pour utiliser Github par rapport à HTTPS.
Ce qui se passe là-bas, c'est que votre école intercepte toutes les communications SSL, probablement pour les surveiller.
Pour faire cela, ce qu'ils font est essentiellement une attaque "homme au milieu", et à cause de cela, votre navigateur se plaint à juste titre qu'il n'est pas en mesure de vérifier le certificat de github. Votre proxy d'école prend le certificat de github et fournit son propre certificat.
Lorsque votre navigateur essaie de vérifier le certificat fourni par l'école par rapport à l'AC ayant signé le certificat de github, il échoue à juste titre.
Donc, pour que la connexion SSL fonctionne dans l'école, vous devez accepter consciemment cette attaque "MITM". Et vous le faites en ajoutant le certificat de l'autorité de certification de l'école.
Lorsque vous faites confiance à l'autorité de certification de votre école, votre vérification du faux certificat github fonctionnera, car ce certificat sera vérifié par l'autorité de certification de l'école.
Sachez que la connexion SSL n'est plus sûre, car votre administrateur d'école sera capable d'intercepter toutes vos connexions cryptées.
la source
/usr/local/share/ca-certificates/
. Vous voyezman update-ca-certificates
, il est question d'une liste blanche,/usr/share/ca-certificates/
mais de la manière dont elle approuve implicitement tout ce qui se trouve dans l'/usr/local/share/ca-certificates/
annuaire./usr/local/share/ca-certificates
je devais l’utilisersudo dpkg-reconfigure ca-certificates
pour le ramasser.Le
ca-certificates
paquet a les instructions dans sonREADME.Debian
:Notez qu'il mentionne un répertoire différent des autres réponses ici:
Après avoir copié dans,
/usr/local/share/ca-certificates/
vous pouvez alors mettre à jour les autorisations du cert et vous lancersudo update-ca-certificates
comme indiqué dans la réponse de Telegraphers. Vous verrez dans la sortie que le certificat a été ajouté.la source
Les extensions .crt, .pem et .cer sont interchangeables, il suffit de changer l'extension du nom de fichier, elles ont la même forme. Essaye ça:
la source
openssl(1)
pour convertir le certificat au format PEM. Run:$ openssl -in mycert.cer -inform DER -out mycert.pem -outform PEM
openssl x509 -inform DER -in certificate.cer -out certificate.pem
J'utilise la compilation suivante des réponses précédentes:
Il peut être modifié pour être one-liner.
Souvent les deux
site.example.com
etexample.com
sont les mêmes noms d'hôtes.la source
J'ai lu toutes les solutions et résolu comme ça;
la source
J'avais un problème similaire où l'installation du certificat dans Firefox et Google Chrome fonctionnait, mais la mise à jour dans le terminal
sudo apt-get update
ne fonctionnait pas et donnait des erreurs 403 Forbidden IP. J'avais aussi un fichier sample.cer. Donc, fondamentalement, je dois d'abord le convertir en .crt.Toujours tout en faisant ,
sudo dpkg-reconfigure ca-certificates
je ne pouvais pas trouver le certificat requis. Le problème avec moi, c'est que je copiais le certificat au mauvais endroit.Au lieu de le copier à,
$/usr/share/ca-certificates
je le copiais à$/usr/local/share/ca-certificates
Mais en le plaçant au bon endroit a résolu mon problème. Mais je ne suis toujours pas en mesure de mettre à jour les packages ou d'installer de nouveaux packages.Solution rapide (pour moi sur):
Utilisation de ftp au lieu de http
et au-dessus de la commande a travaillé. Faites une copie du fichier sources.list avant d’apporter les modifications.
Si quelque chose n'est pas clair ou incorrect, corrigez-moi.
la source
Pour accéder à un site Web avec
https
, que vous utilisiez une CLI ou un navigateur GUI, vous n'avez pas besoin de votre certificat shool.Pour utiliser
git
via http (s), vous devez enregistrer votre clé publique dans les paramètres de votre profil sur GitHub .Plus d'infos ici . Changez votre profil GitHub ici .
Essaye ça:
… Fonctionne sans certificat supplémentaire.
la source