Erreur SSL Lors de l’installation de rubygems, impossible d’extraire des données de ‘https://rubygems.org/

J’essaie de faire le tutoriel Michael Hartl. Lorsque j’essaie d’installer les rails 3.2.14 dans mon gemset, j’obtiens le problème suivant:

$ gem install rails -v 3.2.14

ERREUR: Impossible de trouver un joyau valide ‘rails’ (= 3.2.14), voici pourquoi:

Impossible de télécharger les données depuis https://rubygems.org/ – SSL_connect renvoyé = 1 errno = 0 state = SSLv3 read certificate du serveur B: la vérification du certificate a échoué ( https://s3.amazonaws.com/production.s3.rubygems.org /specs.4.8.gz )

Après avoir fait une recherche sur Google, j’ai trouvé que je pouvais utiliser une source non-SSL pour les rubygems donc j’ai couru:

sudo gem sources -a http://rubygems.org 

Ensuite, lorsque j’ai essayé d’installer à nouveau les rails, cela a été un succès. Cependant, j’ai toujours le problème ci-dessus mais comme un avertissement:

AVERTISSEMENT: Impossible d’extraire les données de ‘ https://rubygems.org/ ‘: SSL_connect a renvoyé = 1 erreur # 0 état = certificate de serveur de lecture SSLv3 B: vérification de certificate échouée ( https://s3.amazonaws.com/production.s3 .rubygems.org / spec.4.4.gz )

Comment puis-je supprimer cet avertissement / erreur entièrement?

J’utilise les éléments suivants:

  • rvm 1.22.15
  • ruby 2.0.0p247 (2013-06-27 révision 41674) [x86_64-darwin12.3.0]
  • OSX 10.8.5

Pour les utilisateurs RVM et OSX

Assurez-vous d’utiliser la dernière version de rvm:

 rvm get stable 

Ensuite, vous pouvez faire deux choses:

  1. Mettre à jour les certificates:

     rvm osx-ssl-certs update all 
  2. Mettre à jour les rubygems:

     rvm rubygems latest 

Pour les utilisateurs non RVM

Rechercher le chemin du certificate:

 cert_file=$(ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE') 

Générer un certificate:

 security find-certificatee -a -p /Library/Keychains/System.keychain > "$cert_file" security find-certificatee -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$cert_file" 

Le code entier: https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/osx-ssl-certs


Pour les utilisateurs non OSX

Assurez-vous de mettre à jour les ca-certificatees package ca-certificatees (sur les anciens systèmes, il pourrait ne pas être disponible – n’utilisez pas cet ancien système qui ne reçoit plus de mises à jour de sécurité)

Note Windows

Les versions d’ installation de Ruby pour les fenêtres sont préparées par Luis Lavena et le chemin d’access aux certificates affichera quelque chose comme C:/Users/Luis/... consultez https://github.com/oneclick/rubyinstaller/issues/249 pour plus de détails. et cette réponse https://stackoverflow.com/a/27298259/497756 pour le correctif.

Dernières découvertes …

https://gist.github.com/luislavena/f064211759ee0f806c88

Plus important encore … télécharger https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem

Découvrez où le coller

 C:\>gem which rubygems C:/Ruby21/lib/ruby/2.1.0/rubygems.rb 

Ensuite, copiez simplement le fichier .pem dans ../2.1.0/rubygems/ssl_certs/ et continuez avec votre entreprise.

Pour les utilisateurs de Windows

Lien vers http://rubygems.org/pages/download

  1. Télécharger le dernier fichier zip (dans mon cas 2.4.5)
  2. Décompressez le
  3. Exécuter “ruby setup.rb” dans le dossier décompressé
  4. maintenant exécuter la commande d’installation de gem

Si vous souhaitez utiliser la source non-SSL, essayez d’abord de supprimer la source HTTPS, puis en ajoutant celle HTTP:

 sudo gem sources -r https://rubygems.org sudo gem sources -a http://rubygems.org 

METTRE À JOUR:

Comme l’indique mpapis, cela ne devrait être qu’une solution temporaire. Il peut y avoir des problèmes de sécurité si vous accédez à RubyGems via la source non-SSL.

Une fois que la solution de contournement n’est plus nécessaire, vous devez restaurer la source SSL:

 sudo gem sources -r http://rubygems.org sudo gem sources -a https://rubygems.org 

Sous Windows, vous devrez utiliser le source HTTP pour mettre à jour le gem puis revenir à HTTPS .

 gem sources -r https://rubygems.org/ gem sources -a http://rubygems.org/ gem update --system gem sources -r http://rubygems.org/ gem sources -a https://rubygems.org/ 

Edit: Avertissement Je ne suis pas sûr si cela est sûr . Est-ce que quelqu’un sait si les paquets de rbuy sont signés? La réponse acceptée semble être une meilleure solution.

Pour les utilisateurs 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 personnes en ont besoin: Mise à jour du certificate SSL La raison du problème est que rubygems.org est passé à un certificate SSL plus sécurisé (SHA-2 utiliser le cryptage 256 bits). L’outil de ligne de commande rubygems regroupe la référence au bon certificate. Par conséquent, rubygems lui-même ne peut pas être mis à jour en utilisant une ancienne version de rubygems. Les rubygems doivent d’abord être mis à jour manuellement.

D’abord, découvrez quels rubygèmes vous avez:

 rubygems –v 

Selon que vous avez un 1.8.x, 2.0.x ou 2.2.x, vous devrez télécharger un joyau de mise à jour, nommé «rubygems-update-XYZgem», où XYZ est la version dont vous avez besoin. 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 Exécution de 2.2.x: téléchargement: https://github.com/rubygems/rubygems/releases/tag/v2.2.3

Installez le bijou de mise à jour:

 gem install –-local full_path_to_the_gem_file 

Exécuter le bijou de mise à jour:

 update_rubygems --no-ri --no-rdoc 

Vérifiez que rubygems a été mis à jour:

 rubygems –v 

Désinstallez le bijou de mise à jour:

 gem uninstall rubygems-update -x 

À ce stade, vous pouvez être OK. Mais il est possible que vous ne disposiez pas du dernier fichier de clé publique pour le nouveau certificate. Pour faire ça:

Téléchargez le dernier certificate (actuellement AddTrustExternalCARoot-2048.pem) depuis https://rubygems.org/pages/download . Tous les certificates sont également disponibles à l’ adresse suivante : https://github.com/rubygems/rubygems/tree/master/lib/rubygems/ssl_certs

Découvrez où le mettre:

 gem which rubygems 

Placez ce fichier dans le répertoire “rubygems \ ssl_certs” à cet emplacement.

Conformément à l’ engagement de rubygems , les certificates sont déplacés vers des répertoires plus spécifiques. Par conséquent, le certificate (AddTrustExternalCARoot-2048.pem) doit actuellement se trouver sur le chemin suivant lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem

Essayez d’utiliser le site Web source pour les gemmes, à savoir rubygems.org. Utilisez http au lieu de https. Cette méthode n’implique aucun travail tel que l’installation de certificates et tout ça.

Exemple –

 gem install typhoeus --source http://rubygems.org 

Cela fonctionne, mais il y a une réserve cependant.

La gem est installée, mais la documentation n’est pas due à des erreurs de certificateion. Voici l’erreur que j’ai

 Parsing documentation for typhoeus-0.7.0 WARNING: Unable to pull data from 'https://rubygems.org/': SSL_connect returned=1 errno=0 state=SSLv3 read server certificatee B: certificatee verify failed (https://rubygems.org/latest_specs.4.8.gz) 

Running gem update --system fonctionné pour moi

Simplement désinstaller et réinstaller openssl avec homebrew a résolu ce problème pour moi.

brew uninstall --force openssl

brew install openssl

Pour les utilisateurs de Fedora

Mettez à jour le fichier cert.pem vers le fichier le plus récent fourni par cURL: http://curl.haxx.se/ca/cacert.pem

 curl -o `ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE' |tr -d \"` http://curl.haxx.se/ca/cacert.pem 

Si vous utilisez Windows, ouvrez https://rubygems.org/ avec Internet Explorer.

Cliquez sur les informations de sécurité et importez le certificate. En bout de ligne, votre chaîne de certificateion est obsolète et vous devez append ce nouveau certificate. N’oubliez pas qu’il ne s’agit pas d’une violation de la sécurité tant que vous pouvez valider le certificate comme approuvé.

Assurez-vous que votre horloge système est correcte

Cette erreur exacte m’est arrivée aujourd’hui sur une machine virtuelle Ubuntu fonctionnant sur VirtualBox. J’ai essayé la plupart des solutions présentées ci-dessus avant de remarquer que j’avais repris un vieil état suspendu et que mon horloge était éteinte depuis plusieurs jours.

La mise à jour de l’horloge a immédiatement résolu mon problème. Voici la commande que j’ai utilisée dans mon cas:

sudo service ntp arrêter && sudo ntpdate pool.ntp.org && sudo service ntp démarrer

Dans mon cas, les certificates Ubuntu CA étaient obsolètes. Je l’ai corrigé en exécutant:

  sudo update-ca-certificatees 

Le cas particulier de RubyGems (l’outil de ligne de commande) est qu’il nécessite de regrouper dans son code les certificates de confiance, qui permettent à RubyGems d’établir une connexion avec les serveurs même lorsque le système d’exploitation de base ne peut pas en vérifier l’identité.

Jusqu’à il y a quelques mois, ce certificate était fourni par une autorité de certificateion, mais un nouveau certificate était fourni par un autre.

Pour cette raison, les installations existantes de RubyGems devraient être mises à jour avant le changement de certificate et donner suffisamment de temps pour que la modification se répande (et que les personnes mettent à jour).

Tout le monde peut trouver sa solution en suivant les étapes simples données dans le lien ci-dessous

https://gist.github.com/luislavena/f064211759ee0f806c88

Essayer

 gem update --system 

J’espère que cela résoudra le problème.

J’ai eu le même problème en essayant d’installer gem concombre. Cependant, j’ai remarqué que la gemme de bundler déjà installée avec Ruby 2.0. J’ai créé un Gemfile.rb dans le dossier du projet avec les gems requirejs et j’ai suivi ces étapes

  1. Naviguez jusqu’au dossier du projet
  2. Type bundle install

Tous les gems requirejs installés.

Pour Illumos / Solaris utilisant OpenCSW pkgutil:

Installer CSWcacertificatees avant ‘gem install’

 pkgutil -yi CSWcacertificatees 

Si vous utilisez un kit Ruby qui ne provient pas d’OpenCSW, votre version ruby ​​peut s’attendre à trouver le fichier de certificate ailleurs. Dans ce cas, j’ai simplement lié le fichier /etc/opt/csw/ssl/cert.pem d’OpenCSW à l’endroit prévu.

Vérifiez où Ruby s’attend à le trouver:

 export cf=`ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE'` && echo $cf 

Ensuite, s’il y a une divergence, liez-la:

 ln -s /etc/opt/csw/ssl/cert.pem $cf && file $cf 

Ou peut être empêché par pare-feu comme moi. Essaye ça:

sudo gem installer –http-proxy http: // localhost: port cocoapods -V

Pour l’utilisateur Windows:

Après avoir installé Ruby 2.2.3 (+ rubygems 2.5.1) avec succès sur une machine de test avec access à Internet, j’ai eu cette erreur SSL lorsque j’ai installé un bundler sur une machine de production, sur le réseau.

Comme j’avais des limitations d’access au réseau, et qu’il était impossible de modifier les parameters d’access SSL, et en fonction des messages d’erreur, j’ai effectué les étapes ci-dessous pour pouvoir terminer l’installation de l’ensemble (cela peut paraître fou, mais travaillé…).

Grâce à une machine avec un access illimité à Internet, téléchargé les fichiers suivants:

J’ai ajouté ces fichiers sur un serveur intranet, en conservant la structure des dossiers des liens ci-dessus:

  • $ INTRANET_HOME

spec.4.8.gz e latest_specs.4.8.gz

  • $ INTRANET_HOME \ quick \ Marshal.4.8

bundler-1.11.2.gemspec.rz

  • $ INTRANET_HOME \ gems

bundler-1.11.2.gem

Ensuite, j’ai ajouté mon intranet pour accéder à la source gem:

 gem sources -a http://mydomain.com.br 

J’ai couru avec le succès du “gem install bundler” après l’installation, il a suffi de supprimer mon intranet du gem:

 gem sources -r http://mydomain.com.br 

J’espère que cela est utile dans toute situation similaire ….

En tant qu’utilisateur de Windows 10, j’ai suivi la réponse de Dheerendra et cela a fonctionné pour moi un jour. Le lendemain, j’ai ressenti le problème et son correctif n’a pas fonctionné. Pour moi, la solution consistait à mettre à jour bundler avec:

gem update bundler

Je crois que ma version de bundler avait plus de quelques mois.

Assurez-vous que vous avez installé ruby ​​avec l’option –disable-binary , sinon désinstallez-le et réinstallez-le 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 ruby ​​de Windows, je posterai la réponse.

Quand j’ai voulu installer un bijou d’actif:

 gem in activesupport --version 5.1.6 ERROR: Could not find a valid gem 'activesupport' (= 5.1.6), here is why: Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificatee B : certificatee verify failed (https://api.rubygems.org/specs.4.8.gz) 

Les étapes suivantes doivent uniquement copier les certificates de Windows Ruby plus récents. Prenez le dernier ruby ​​(ou au moins ruby 2.4.0 ) et procédez comme suit:

copier les certificates de ces répertoires (en fonction de 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 ajuster à ce dont vous avez besoin):
C:\prg_sdk\rubies\Ruby231-p112-x64\lib\ruby\2.3.0\rubygems\ssl_certs