Erreur SSL Lors de l'installation de rubygems, Incapable d'extraire des données à partir de 'https://rubygems.org/
Je suis en train de faire le Michael Hartl tutoriel. Quand je tente d'installer des rails 3.2.14 dans mon sertie, j'ai le problème suivant:
$ gem install rails-v 3.2.14
ERREUR: impossible de trouver un valable gem 'rails' (= 3.2.14), voici pourquoi:
Pas en mesure de télécharger des données à partir de https://rubygems.org/ - SSL_connect retourné=1 errno=0=SSLv3 lire certificat de serveur B: certificat de vérifier échoué (https://s3.amazonaws.com/production.s3.rubygems.org/specs.4.8.gz)
Après Googler autour, j'ai trouvé que je pouvais utiliser un non-SSL source pour rubygems alors, j'ai couru:
sudo gem sources -a http://rubygems.org
Puis, quand j'ai essayé d'installer des rails de nouveau, il a réussi. Cependant, j'ai toujours le problème ci-dessus, mais comme un avertissement:
AVERTISSEMENT: Impossible d'extraire les données à partir de 'https://rubygems.org/': SSL_connect retourné=1 errno=0=SSLv3 lire certificat de serveur B: certificat de vérifier échoué (https://s3.amazonaws.com/production.s3.rubygems.org/specs.4.8.gz)
Comment puis-je supprimer cet avertissement/d'erreur tout?
Je suis en utilisant le suivant:
- rvm 1.22.15
- ruby 2.0.0p247 (2013-06-27 révision 41674) [x86_64-darwin12.3.0]
- OSX 10.8.5
- Il ressemble presque à une erreur de régression. J'ai remarqué qu'une de mes élèves d'avoir le même problème aujourd'hui sur OS X. quand même la question. Il y a d'autres questions connexes (identique?) sur DONC, à partir de l'année dernière.
- C'est un bogue connu dans obsolètes (
2.0.*
) versions derubygems
. Essayez de mettre à jour à la dernière rubygems version:gem update --system
et puis exécutez de nouveaugem install
. - Si c'est ok pour mettre à jour votre version de ruby, le mettre à jour. Ce problème est résolu dans la plus récente version de ruby.
- Après l'ajout de l'adresse http de la source, l'exécution de
gem sources -r https://rubygems.org/
a fonctionné pour moi (dans la mesure du retrait de l'avertissement).
Vous devez vous connecter pour publier un commentaire.
Pour RVM & OSX
Assurez-vous d'utiliser la dernière rvm:
Ensuite, vous pouvez faire deux choses:
Mettre à jour les certificats:
Mise à jour de rubygems:
Pour les non RVM utilisateurs
Trouver le chemin d'accès du certificat:
Générer un certificat:
L'ensemble du code: https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/osx-ssl-certs
Pour les non OSX
Assurez-vous de package de mise à jour
ca-certificates
. (sur les vieux systèmes, elle peut ne pas être disponible - ne pas utiliser un ancien système qui ne permet pas de recevoir des mises à jour de sécurité plus)Windows remarque
La Ruby Installer des versions pour windows sont préparés par Luis Lavena et le chemin d'accès à ces certificats seront montrant quelque chose comme
C:/Users/Luis/...
vérifier https://github.com/oneclick/rubyinstaller/issues/249 pour plus de détails et cette réponse https://stackoverflow.com/a/27298259/497756 pour fix.rvm rubygems latest
entraîné une erreur se plaindre de manque de sommes de contrôle. Cependant, les choses ont commencé à travailler, sans que, trop... apparemment vous pourriez forcer avec--verify-downloads 1
si vous avez besoin de. Toutes les idées pourquoi? Il a essayé de récupérer la versionrubygems-2.1.6
head
version et versionstable
bientôt.ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE'
et ensuite enregistrer les certificats là ... je n'ai pas eu à le faire sur windows donc je ne sais pas comment faire pour extraire des certificats à partir de windowspermission denied: /private/etc/ssl/cert.pem
Dernières découvertes...
https://gist.github.com/luislavena/f064211759ee0f806c88
Plus important...à télécharger
https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
Figure où le coller
Ensuite il suffit de copier le .fichier pem dans ../2.1.0/rubygems/ssl_certs/et allez sur votre entreprise.
.pem
extension, pas.pem.txt
!AddTrustExternalCARoot-2048.pem
, 2) j'ai placé le fichier àC:\Ruby193\lib\ruby\1.9.1\rubygems\ssl_certs
, 3) - je exécutergem install susy
et obtenir la même erreurUnable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
gem install --local C:\Downloads\rubygems-update-2.4.5.gem
Pour les utilisateurs de windows
Goto lien http://rubygems.org/pages/download
make
lajson
gem. J'ai suivi ce tutoriel: corlewsolutions.com/articles/...Si vous souhaitez utiliser le non-SSL source, essayez de supprimer le HTTPS source première, puis en ajoutant les un HTTP:
Mise à JOUR:
Comme mpapis unis, ce ne devait être qu'une solution temporaire. Il pourrait y avoir quelques problèmes de sécurité si vous avez accès RubyGems à travers la non-SSL source.
Une fois la solution de contournement n'est plus nécessaire, vous devez restaurer la SSL-source:
sudo gem sources -r https://rubygems.org/
etsudo gem sources -r http://rubygems.org/
. Avis de fuite/
./
, elle aussi doit être enlevé à la fin/
.Sur Windows, vous devrez utiliser
HTTP
source de mise à jourgem
puis revenir à l'utilisation deHTTPS
.Edit: Avertissement je ne suis pas sûr si ce est sûr. Personne ne sait si ruby paquets sont signés? La accepté de répondre ressemble à une meilleure solution.
gem sources -l
de voir vos sources avant et après la mise à jour du système. Si la mise à jour échoue, spécifiez un numéro de version à droite après le --système. Voir rubygems.org/gems/rubygems-update/versions ou demander à un collègue pour cegem -v
rapports.Pour les Utilisateurs de Windows (et peut-être d'autres)
Rubygems.org a un guide qui explique non seulement comment résoudre ce problème, mais aussi pourquoi tant de gens sont nombreux à l'avoir: SSL Certificat de mise à Jour
La raison pour laquelle le problème est rubygems.org passé à un plus sécurisé, certificat SSL (SHA-2 qui utilisent le cryptage 256 bits). Le rubygems outil de ligne de commande des faisceaux de référence dans le certificat correct. Donc rubygems lui-même ne peut pas être mis à jour en utilisant une ancienne version de rubygems. Rubygems doit d'abord être mis à jour manuellement.
D'abord savoir ce rubygems vous avez:
Selon que vous avez un 1.8.x, 2.0.x ou 2.2.x, vous aurez besoin de télécharger une mise à jour de gem, nommé “rubygems-mise à jour-X. Y. Z. gem”, où X. Y. Z est la version dont vous avez besoin.
L'exécution de 1.8.x: téléchargement: https://github.com/rubygems/rubygems/releases/tag/v1.8.30
Running 2.0.x: téléchargement: https://github.com/rubygems/rubygems/releases/tag/v2.0.15
L'exécution 2.2.x: téléchargement: https://github.com/rubygems/rubygems/releases/tag/v2.2.3
Installer la mise à jour gem:
Exécuter mise à jour de bijou:
Vérifier que rubygems a été mis à jour à:
Désinstaller la mise à jour gem:
À ce stade, vous pourriez être OK. Mais il est possible que vous n'avez pas la dernière fichier de clé publique pour le nouveau certificat. Pour ce faire:
Télécharger le certificat le plus récent, (actuellement AddTrustExternalCARoot-2048.pem)
de https://rubygems.org/pages/download.
Tous les certificats sont également situés à: https://github.com/rubygems/rubygems/tree/master/lib/rubygems/ssl_certs
Savoir où le mettre:
De placer ce fichier dans le “rubygems\ssl_certs” répertoire à cet endroit.
Comme par rubygems commettre, les certificats sont déplacés vers des répertoires spécifiques. Ainsi, actuellement, le certificat(AddTrustExternalCARoot-2048.pem) est prévu sur le chemin d'accès suivant
lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
Essayez d'utiliser le site web de la source pour les gemmes, j'.e rubygems.org. L'utilisation de http au lieu de https. Cette méthode n'implique pas de travaux tels que l'installation de certs et tout ça.
Exemple -
Cela fonctionne, mais il y a une mise en garde, cependant.
La gemme est installé, mais la documentation n'est pas à cause de cert erreurs. Voici l'erreur que je reçois
De course
gem update --system
a fonctionné pour moiSSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
Assurez-vous que l'horloge de votre système est correct
Cette erreur exacte qui m'est arrivé aujourd'hui sur une Ubuntu en machine virtuelle en cours d'exécution sur VirtualBox. J'ai essayé la plupart des solutions indiquées ci-dessus avant, j'ai remarqué que j'avais repris à partir d'un ancien état de suspension, et mon horloge a été par de nombreux jours.
La mise à jour de l'horloge immédiatement corrigé mon problème. Voici la commande que j'ai utilisé dans mon cas:
sudo service ntp stop && sudo ntpdate pool.ntp.org && sudo service ntp start
Il suffit de désinstaller et de réinstaller openssl avec homebrew résolu ce problème pour moi.
brew uninstall --force openssl
brew install openssl
brew uninstall --ignore-dependencies openssl
(qui est l'équivalent de l'ancienforce
drapeau)Pour les utilisateurs de Fedora
Mise à jour de la
cert.pem
à nouveau fichier qui fournissent par cURL: http://curl.haxx.se/ca/cacert.pemSi vous utilisez windows, ouvrez https://rubygems.org/ avec internet explorer.
Cliquez sur informations de sécurité et d'importer le certificat. La ligne de fond est votre chaîne de certification est obsolète et vous avez besoin d'ajouter ce nouveau certificat. Rappelez-vous que ce n'est pas une violation de la sécurité aussi longtemps que vous pouvez valider le certificat de confiance.
Dans mon cas, l'Ubuntu certificats d'autorité de certification n'étaient pas à jour. Je l'ai corrigé en cours d'exécution:
Le cas particulier de RubyGems (l'outil de ligne de commande), c'est qu'il nécessite de regrouper à l'intérieur de son code, les certificats de confiance, qui permettent de RubyGems pour établir une connexion avec les serveurs, même lorsque le système d'exploitation de base est pas en mesure de vérifier l'identité d'entre eux.
Jusqu'à il y a quelques mois, ce certificat a été fourni par une autorité de certification, mais le plus récent certificat est fourni par un autre.
De ce fait, les installations existantes de RubyGems aurait été mis à jour avant le changement de certificat et de donner suffisamment de temps pour le changement à l'écart (et les gens à mettre à jour)
N'importe qui peut trouver sa solution en suivant les étapes simples donné dans le lien ci-dessous
https://gist.github.com/luislavena/f064211759ee0f806c88
Essayer
Espère que ça résout le problème.
apt install ruby
.ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
J'ai eu le même problème lorsque vous essayez d'installer le concombre gem. Cependant, j'ai remarqué que bundler gem déjà installé avec ruby 2.0.
J'ai créé un Gemfile.rb dans le dossier du projet avec nécessaire de gemmes et de suivi de cette étapes
Toutes les gemmes installé.
Pour Illumos /Solaris à l'aide de OpenCSW pkgutil:
Installer CSWcacertificates avant "gem install'
Si vous utilisez un rubis kit qui n'est pas de OpenCSW, votre version de ruby peut s'attendre à trouver le fichier de certificat dans un autre endroit. Dans ce cas, j'ai simplement un lien symbolique OpenCSW /etc/opt/csw/ssl/cert.pem à l'endroit prévu.
Vérifier où ruby s'attend à trouver :
Puis, si il y a une divergence, un lien:
Ou peut-être empêché par le pare-feu comme moi. Essayez ceci:
sudo gem install --http-proxy http://localhost:port cocoapods -V
Pour les utilisateurs Windows:
Après l'installation de Ruby 2.2.3 (+ rubygems 2.5.1) avec succès sur une machine de test avec accès à internet, j'ai eu cette erreur SSL lorsque j'ai installé bundler sur une machine de production, au sein du réseau.
Que j'ai eu accès au réseau limitations, et il n'y avait pas moyen de modifier les paramètres pour l'accès SSL, et sur la base des messages d'erreur, j'ai effectué les étapes ci-dessous pour être en mesure de terminer l'installation de la bundler
(cela peut sembler fou, mais il a travaillé...).
À travers une machine avec accès illimité à internet, de télécharger les fichiers suivants:
J'ai ajouté ces fichiers sur un serveur intranet, en gardant la structure du dossier les liens ci-dessus:
spec.4.8.gz e latest_specs.4.8.gz
bundler-1.11.2.gemspec.rz
bundler-1.11.2.gem
Puis j'ai ajouté mon intranet pour accéder à gem source:
J'ai couru avec le succès de la "gem install bundler" après l'installation, il a fallu enlever de mon intranet de la gemme:
J'espère que c'est utile dans une situation similaire....
Comme un Windows 10, j'ai suivi Dheerendra de réponse, et il a travaillé pour moi un jour. Le lendemain, j'ai vécu de nouveau le problème, et sa solution n'a pas fonctionné. Pour moi, le correctif a été mise à jour
bundler
avec:gem update bundler
Je crois que ma version de
bundler
a plus que quelques mois.Assurez-vous que vous avez installé ruby avec --disable-binaire option,
si pas, le désinstaller et de le réinstaller avec l'option.
plus d'infos ici
La réponse n'est plus valide. Depuis que j'ai rencontré le problème avec les anciens Windows ruby, maintenant, je vais poster la réponse.
Lorsque j'ai voulu installer un activesupport gem:
Suivez les étapes suivantes pour copier uniquement les certificats de windows plus récents ruby.
Prendre la dernière ruby (ou au moins ruby 2.4.0) et effectuez les opérations suivantes:
copie des certificats à partir de ces répertoires (adapter à vos besoins):
C:\prg_sdk\rubies\Ruby-2.4\lib\ruby\2.4.0\rubygems\ssl_certs\rubygems.org
C:\prg_sdk\rubies\Ruby-2.4\lib\ruby\2.4.0\rubygems\ssl_certs\index.rubygems.org
à destination (encore une fois s'adapter à ce dont vous avez besoin):
C:\prg_sdk\rubies\Ruby231-p112-x64\lib\ruby\2.3.0\rubygems\ssl_certs
Approche/one-liner qui peuvent être automatisées pour télécharger les gemmes en utilisant HTTP au lieu de HTTPS: