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 exécutant 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 fichier .cer
; la réponse pour .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 l'authentification avec la commande git
totalement et lui faire ignorer les certificats comme quoi la réponse ici dit? De plus, je ne veux pas que la page Web se charge, j'ai configuré Firefox pour le faire. Je veux que la commande git Push
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
Remarque: j'ai découvert son git config --global http.sslverify false
. Mais je voudrais voir une réponse à tout, pas seulement un git hack
TL; DR
Pour que tout fonctionne, et pas seulement 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 sur 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.
Le package ca-certificates
a les instructions dans son README.Debian
:
Si vous souhaitez installer des autorités de certification locales pour une sécurité implicite, veuillez placer les fichiers de certificat sous forme de fichiers uniques se terminant par
.crt
dans/usr/local/share/ca-certificates/
et réexécutezupdate-ca-certificates
.
Notez qu'il mentionne un répertoire différent des autres réponses ici:
/usr/local/share/ca-certificates/
Après avoir copié dans /usr/local/share/ca-certificates/
, vous pouvez mettre à jour les autorisations du certificat et exécuter Sudo update-ca-certificates
comme indiqué dans la réponse de Telegraphers. Vous verrez dans la sortie que le certificat a été ajouté.
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:
$ 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
J'utilise la compilation suivante des réponses précédentes:
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
Il peut être modifié pour être one-liner.
site.example.com
et example.com
sont souvent les mêmes noms d'hôte.
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.
Sudo openssl x509 -inform DER -in sample.cer -out sample.crt
Toujours en faisant Sudo dpkg-reconfigure ca-certificates
je n’ai pas trouvé 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
Sudo sed -i s/http/ftp/ /etc/apt/sources.list && apt-get update
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.
Pour accéder à un site Web avec https
, que vous utilisiez un navigateur CLI ou une interface graphique, 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:
Sudo apt-get install w3m
w3m https://github.com/
… Fonctionne sans certificat supplémentaire.
J'ai lu toutes les solutions et résolu comme ça;
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