J'obtiens l'erreur suivante lors de l'accès à Github via HTTPS:
error: server certificate verification failed.
CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
C'est parce que je n'ai pas de certificats /etc/ssl/certs/
. Je sais comment résoudre ce problème. Je peux installer le paquet ca-certificates
depuis le référentiel Debian. Le problème est, cependant, que cela installera tous les certificats (des milliers) que je ne veux pas nécessairement accepter / faire confiance.
Comment puis-je installer un certificat pour Github uniquement?
un sous-problème / sous-question
Sur une autre machine, où le paquet ca-certificates
est déjà installé et git fonctionne, j'ai remarqué que certains certificats /etc/ssl/certs/
sont un certificat par fichier et d'autres sont plusieurs certificats en un fichier. Le fichier contenant le certificat Github /etc/ssl/certs/ca-certificates.crt
contient plus de 150 autres certificats:
$ grep 'BEGIN CERTIFICATE' /etc/ssl/certs/ca-certificates.crt | wc -l
159
Comment puis-je trouver lequel de ces 159 certificats est celui dont j'ai besoin? (autre que la force brute - découpage du fichier en deux et vérification des deux moitiés, répétition while n > 1
).
la source
Réponses:
Pour accéder à votre Github, vous devez le faire via ssh. Vous devez donc ajouter votre clé publique ssh à github. Après cela, vous pouvez accéder à github via ssh, c'est-à-dire:
Voir aussi: Github: génération de clés ssh , WikiHow
[Modifier # 1]
sans vérification de certificat:
ou authentifié
Pour moi, ce que vous demandez n'est toujours pas clair, car vous savez que l'installation de certificats CA résoudra le problème.
[Modifier # 2]
Ok, l'autre question était
Ouvrez votre navigateur et accédez à https://github.com/ . Cliquez sur le nom vert à gauche de
https://
et cliquez surCertificates
. Sur l'Details
onglet, vous verrez la chaîne de certificats, qui est:Exportez chacun des certificats DigiCert dans un fichier.
/etc/ssl/certs/
c_rehash
quel chat tous les certificatsca-certificates.crt
Comme je l'ai dit, je ne suis pas un ami de telles actions car github peut changer l'autorité de certification à tout moment, donc cela entraînera toujours un travail supplémentaire.
la source
github
viahttps
.Comme cela a été suggéré précédemment, vous pouvez utiliser des clés SSH, au lieu de compter sur HTTPS pour éviter ce problème et, sans doute, bénéficier d'une meilleure sécurité.
Cela dit, je pense que ce que vous cherchez, c'est comment installer les certificats racine / CA dans / etc / ssl / certs. En bref, il ne suffit pas de simplement vider le fichier encodé PEM dans / etc / ssl / certs - vous devez également calculer le hachage dudit certificat et créer un lien symbolique dans / etc / ssl / certs vers ce certificat fichier. Le nom du lien symbolique doit être le hachage suffixé de .0, ou en cas de collision de hachage, .1, etc.
Voici une description détaillée, ainsi qu'un exemple de script que vous pouvez utiliser pour automatiser le processus: http://wiki.openwrt.org/doc/howto/wget-ssl-certs#adding.root.certificates
J'espère que c'est ce que vous cherchiez, mais comme je l'ai dit plus tôt, les clés SSH sont probablement la "meilleure" solution. :)
la source
c_rehash
fait ce que vous avez expliqué. Voir lac_rehash
page de manuel. BTW: il n'est pas nécessaire de calculer les hachages. Attacher les certificats à ca-certificats.crt est suffisant, cargit
lit uniquement ce fichier. De plus, le lien a expliqué comment obtenir manuellement les certificats avec openssl. Ceci est très douteux et provoque un homme au milieu de l'attaque. Je ne le recommanderais pas.