L'installation de curl avec ssl afin que je puisse installer homebrew
La Solution
J'ai utilisé de Bruno post pour trouver la solution, mais il faut que ce soit plus concret, c'est explicitement ce que j'ai fait.
- Téléchargé cacert.pem dans mon ~/.ssh dir (je ne sais pas si c'est là où il doit aller, mais j'ai vu quelqu'un faire quelque chose de similaire, tout en essayant de trouver une solution, c'est donc là que je l'ai mis).
- Ensemble de l'env var CURL_CA_BUNDLE pour l'installation. C'est en fait la solution numéro 4 de le site web suggéré par l'échec. J'ai juste mal compris ce qu'ils disaient (un exemple simple pourrait m'avez sauvé des heures de confusion). De toute façon, vous aurez besoin de spécifier le chemin d'accès complet à l' .fichier pem, alors vous pouvez l'installer comme ceci
$ CURL_CA_BUNDLE=~/.ssh/cacert.pem ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
Et alors qu'il est installé!
La Question D'Origine
Comment puis-je soit
- installer homebrew, ou
- installer curl avec SSL afin que je puisse installer homebrew?
Je suis sur Mac OSX Leopard.
Je suis en train de installer homebrew, mais j'obtiens l'erreur suivante:
$ ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/Formula/...
/usr/local/Library/Homebrew/...
==> The following directories will be made group writable:
/usr/local/bin
/usr/local/lib
/usr/local/lib/pkgconfig
/usr/local/share/man/man1
/usr/local/share/man/man3
Press enter to continue
==> /usr/bin/sudo /bin/chmod g+w /usr/local/bin /usr/local/lib /usr/local/lib/pkgconfig /usr/local/share/man/man1 /usr/local/share/man/man3
==> Downloading and Installing Homebrew...
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). The default
bundle is named curl-ca-bundle.crt; you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
gzip: stdin: unexpected end of file
/usr/bin/tar: Child returned status 1
/usr/bin/tar: Error exit delayed from previous errors
Failed during: /bin/bash -o pipefail -c '/usr/bin/curl -sSfL https://github.com/mxcl/homebrew/tarball/master | /usr/bin/tar xz -m --strip 1'
J'ai essayé d'installer curl avec macports et en précisant +ssl, mais cela ne fonctionne pas (désolé, je ne me souviens pas de ce que l'erreur a été, et il a fallu environ une heure pour arriver à ce point, donc je ne veux pas le faire à nouveau). - Je désinstaller la boucle de macports, puis exécutez $ whereis curl
qui ne trouve rien.
Donc, je vais à le site suggéré dans le message d'erreur ci-dessus. La plupart des options ne semblent pas applicable, mais l'option 5 est un peu logique:
Mieux/différent/nouveaux CA cert bundle!
Une option consiste à extraire le un un récent navigateur Firefox utilise
en exécutant 'faire ca-bundle" dans la boucle construire la racine de l'arbre
Donc, je reçois le curl code source et exécuter $ ./buildconf
, $ ./configure
, $ make
, $ make ca-bundle
, et enfin $ sudo make install
. - Je vérifier $ whereis curl
et il dit: "/usr/bin/curl".
Mais quand je lance le homebrew installer à nouveau la commande (dans une nouvelle fenêtre de terminal), j'obtiens le même message d'erreur indiqué ci-dessus.
OriginalL'auteur Joshua Cheek | 2011-07-03
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de recompiler cURL, il a déjà le support SSL/TLS, sinon, il ne serait pas afficher
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
.Ce que vous avez besoin est un ensemble de certificats d'autorité de certification tels que le certificat de serveur du serveur que vous essayez de parler à qui est délivré par l'un de ces CAs.
La boucle page, vous lien à partir de liens à http://curl.haxx.se/docs/caextract.html
Vous devriez être en mesure de télécharger le combiné PEM bundle et l'utiliser. Vous pouvez forcer l'aide
curl -fsSL --cacert /path/to/bundle.pem https://...
dans la commande ci-dessus, ou utiliserexport CURL_CA_BUNDLE=/path/to/bundle.pem
avant l'exécution de la commande.Normalement, vous auriez besoin d'un moyen de faire confiance à ce qui est à l'intérieur de ce paquet, mais il y a toujours un élément de "saut de la foi" quand il s'agit de l'importation commerciale de CAs (de la même manière qu'ils le seraient regroupés pour vous avec la plupart des navigateurs).
OriginalL'auteur Bruno
Pour une raison quelconque, l'affiche originale de la solution n'a pas fonctionné pour moi. Même avec la nouvelle autorité de certification bundle, j'ai toujours eu une erreur SSL lors de l'installation:
Donc, au lieu d'exécuter le script d'installation directement, j'ai d'abord téléchargé, puis ajouter les
-k
commutateur (ou--insecure
) à la commande curl (qui se trouve sur la ligne 126 dans la version d'aujourd'hui), et puis a couru que patché script d'installation.Tout d'abord, la mise à jour du roulage bundle de toute façon, à l'aide de cette méthode, mais avec
curl
dans le cas où vous n'avez paswget
:Ensuite, allez à https://github.com/mxcl/homebrew/wiki/installation et copier le script d'installation lien.
Obtenir le script d'installation: (remplacer l'URL avec l'actuel programme d'installation de l'URL du script)
Modifier homebrew installer.rb: de la recherche pour "curl" et ajouter le commutateur-k
Enfin, l'exécution de votre patché script:
OriginalL'auteur mivk
les orientations initiales beau travail pour moi dans OS X 10.9!
tout d'abord télécharger et installer XQuartz
ne sais pas pourquoi j'ai besoin de placer quoi que ce soit dans ~/.ssh, mais bon
Préférences Système
Partage
"Cochez La Case" Connexion À Distance
"Cliquez sur" + ajouter votre nom d'utilisateur
puis dans xquartz type
ssh localhost
answer yes to all
type exit
télécharger le fichier pem
enregistrer les Téléchargements
dans xquartz type
le fichier pem n'ai pas à me plaindre que j'avais besoin d'exporter les éléments suivants a bien fonctionné
vous serez invité à l'installer si vous n'avez pas installé les Utilitaires de ligne de Commande
cliquez sur ok et suivez les invites
il y aura une invite de commandes pour VOTRE Passsword soigneusement et appuyez sur entrée
"J'ai comme un front-end UXD type de personne; heureusement surpris pour pas besoin de DL 2.09 GO de xcode.app"
OriginalL'auteur foxautonomus
ruby -e "$(curl-k -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
fonctionne parce que -k permet d'insécurité des connexions SSL
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
OriginalL'auteur Peter Grecian