J'essaie de faire le tutoriel de Michael Hartl. Lorsque j'essaie d'installer Rails 3.2.14 dans mon gemset, le problème suivant s'affiche:
$ 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 retourné = 1 errno = 0 état = SSLv3 lire le certificat du serveur B: échec de la vérification du certificat ( https://s3.amazonaws.com/production .s3.rubygems.org/specs.4.8.gz )
Après avoir cherché Google, j'ai découvert que je pouvais utiliser une source non-SSL pour rubygems. J'ai donc lancé:
Sudo gem sources -a http://rubygems.org
Ensuite, lorsque j’ai essayé d’installer à nouveau Rails, c’est réussi. Cependant, j'ai toujours le problème ci-dessus mais en guise d'avertissement:
AVERTISSEMENT: impossible d'extraire les données de ' https://rubygems.org/ ': SSL_connect retourné = 1 errno = 0 state = SSLv3 lire le certificat du serveur B: échec de la vérification du certificat ( https: //s3.amazonaws .com/production.s3.rubygems.org/specs.4.8.gz )
Comment puis-je supprimer cet avertissement/erreur entièrement?
J'utilise les éléments suivants:
Assurez-vous que vous utilisez la dernière version de journal:
rvm get stable
Ensuite, vous pouvez faire deux choses:
Mettre à jour les certificats:
rvm osx-ssl-certs update all
Mettre à jour les rubygems:
rvm rubygems latest
Trouver le chemin pour le certificat:
cert_file=$(Ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE')
Générer un certificat:
security find-certificate -a -p /Library/Keychains/System.keychain > "$cert_file"
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$cert_file"
Le code entier: https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/osx-ssl-certs
Assurez-vous de mettre à jour le paquet ca-certificates
. (sur les anciens systèmes, il pourrait ne pas être disponible - n'utilisez pas un ancien système qui ne reçoit plus de mises à jour de sécurité)
Le Ruby Installer les versions pour Windows sont préparées par Luis Lavena et le chemin d'accès aux certificats indiquera quelque chose comme C:/Users/Luis/...
check https://github.com/oneclick/rubyinstaller/issues/249 pour plus de détails et cette réponse https://stackoverflow.com/a/27298259/497756 for fix.
Dernières découvertes ...
https://Gist.github.com/luislavena/f064211759ee0f806c88
Plus important encore ... download https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
Déterminez 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 sur votre entreprise.
Goto link http://rubygems.org/pages/download
Si vous souhaitez utiliser une source non-SSL, essayez d’abord de supprimer la source HTTPS, puis d’ajouter celle HTTP:
Sudo gem sources -r https://rubygems.org
Sudo gem sources -a http://rubygems.org
METTRE À JOUR:
Comme le dit mpapis, cela ne devrait être utilisé que comme solution temporaire. Il peut y avoir des problèmes de sécurité si vous accédez à RubyGems via une 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 HTTP
source pour mettre à jour gem
, puis revenir en utilisant 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: Warning Je ne sais pas si c'est sûr . Est-ce que quelqu'un sait si les paquets Ruby sont signés? La réponse acceptée semble être une meilleure solution.
Rubygems.org a un guide qui explique non seulement comment résoudre ce problème, mais aussi pourquoi beaucoup de gens l’ont: Mise à jour du certificat SSL La raison du problème est rubygems.org est passé à un système plus sécurisé. Certificat SSL (SHA-2 utilisant le cryptage 256 bits). L'outil de ligne de commande rubygems regroupe la référence au bon certificat. Par conséquent, rubygems ne peut pas être mis à jour avec une version antérieure de rubygems. Rubygems doit d'abord être mis à jour manuellement.
D'abord, renseignez-vous sur vos rubygems:
rubygems –v
Selon que vous avez une version 1.8.x, 2.0.x ou 2.2.x, vous devrez télécharger une gem de mise à jour, nommée «rubygems-update-XYZgem», où XYZ est la version dont vous avez besoin. .x: télécharger: https://github.com/rubygems/rubygems/releases/tag/v1.8.30 Lancer 2.0.x: télécharger: https://github.com/rubygems/ rubygems/releases/tag/v2.0.15 En cours d'exécution 2.2.x: télécharger: https://github.com/rubygems/rubygems/releases/tag/v2.2.3
Installez le gem de mise à jour:
gem install –-local full_path_to_the_gem_file
Exécutez le gem de mise à jour:
update_rubygems --no-ri --no-rdoc
Vérifiez que rubygems a été mis à jour:
rubygems –v
Désinstaller Update gem:
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 certificat. Pour faire ça:
Téléchargez le dernier certificat (actuellement AddTrustExternalCARoot-2048.pem) À partir de https://rubygems.org/pages/download . Tous les certificats sont également situés à: 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 à rubygems commit , les certificats sont déplacés vers des répertoires plus spécifiques. Ainsi, le certificat (AddTrustExternalCARoot-2048.pem) est actuellement sur le chemin suivant: lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
Essayez d’utiliser le site Web source pour les gemmes, i.e rubygems.org. Utilisez http au lieu de https. Cette méthode ne nécessite aucun travail tel que l’installation de certs, etc.
Exemple -
gem install typhoeus --source http://rubygems.org
Cela fonctionne, mais il y a une mise en garde cependant.
La gem est installée, mais la documentation n’est pas due à des erreurs de cert. Voici l'erreur que je reçois
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 certificate B: certificate verify failed
(https://rubygems.org/latest_specs.4.8.gz)
Courir gem update --system
a fonctionné pour moi
Désinstaller et réinstaller openssl avec homebrew a résolu ce problème pour moi.
brew uninstall --force openssl
brew install openssl
Si vous utilisez Windows, ouvrez https://rubygems.org/ avec Internet Explorer.
Cliquez sur les informations de sécurité et importez le certificat. En fin de compte, votre chaîne de certification est obsolète et vous devez ajouter ce nouveau certificat. Rappelez-vous qu'il ne s'agit pas d'une violation de sécurité tant que vous pouvez valider le certificat en tant que certificat de confiance.
Mettez à jour le cert.pem
vers le dernier fichier 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
Cette erreur exacte m’est arrivée aujourd’hui sur une machine virtuelle Ubuntu exécutée sur VirtualBox. J'ai essayé la plupart des solutions présentées ci-dessus avant de remarquer que mon état de suspension était très ancien et que mon horloge était éteinte de 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 stop && Sudo ntpdate pool.ntp.org && Sudo service ntp start
Dans mon cas, les certificats de l'autorité de certification Ubuntu étaient périmés. Je l'ai corrigé en exécutant:
Sudo update-ca-certificates
Essayer
gem update --system
J'espère que ça résoud le problème.
Le cas particulier de RubyGems (outil de ligne de commande) est qu'il nécessite de regrouper dans son code les certificats de confiance, ce qui permet à 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 certificat était fourni par une autorité de certification, mais le certificat le plus récent est fourni par une autre.
Pour cette raison, les installations existantes de RubyGems devraient être mises à jour avant le changement de certificat et donner suffisamment de temps pour que le changement se propage (et les personnes à mettre à jour).
Tout le monde peut trouver sa solution en suivant les étapes simples indiquées dans le lien ci-dessous.
J'ai eu le même problème en essayant d'installer un joyau de concombre. Cependant, j’ai remarqué que cette gemme d’ensemble avait déjà été installée avec Ruby 2.0 .
Toutes les gemmes requises installées.
Pour utilisateur Windows:
Après avoir installé 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é l’outil de groupage sur une machine de production, au sein du réseau.
Comme j’avais des limitations d’accès au réseau et qu’il n’existait aucun moyen de modifier les paramètres d’accès SSL, et en fonction des messages d’erreur, j’ai effectué les étapes ci-dessous pour pouvoir terminer l’installation de l’emballeur , mais ça a marché ...).
Via une machine avec un accès illimité à Internet, a 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:
spec.4.8.gz e latest_specs.4.8.gz
bundler-1.11.2.gemspec.rz
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 succès le "bundle d'installation de pierres précieuses" après l'installation, il suffisait de retirer mon intranet de la pierre précieuse:
gem sources -r http://mydomain.com.br
J'espère que cela sera utile dans toute situation similaire ....
Une approche/une ligne qui peut être automatisée pour télécharger des gems en utilisant HTTP au lieu de HTTPS:
printf -- '---\n:sources:\n- http://rubygems.org\n' | tee ~/.gemrc
Ou peut être empêché par pare-feu comme moi. Essaye ça:
Sudo gem install --http-proxy http: // localhost: port cocoapods -V
Installez CSWcacertificates avant "gem install"
pkgutil -yi CSWcacertificates
Si vous utilisez un kit Ruby qui ne provient pas d'OpenCSW, votre version de Ruby peut s'attendre à trouver le fichier de certificat à un autre endroit. Dans ce cas, j'ai simplement lié de façon symbolique le fichier /etc/opt/csw/ssl/cert.pem d'OpenCSW à l'emplacement 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 différence, liez-la:
ln -s /etc/opt/csw/ssl/cert.pem $cf && file $cf
Assurez-vous que vous avez installé Ruby avec l'option --disable-binary, Sinon, désinstallez-la et réinstallez-la avec l'option.
plus d'infos ici
En tant qu’utilisateur Windows 10, j’ai suivi la réponse de Dheerendra answer , et cela a fonctionné pour moi un jour. Le lendemain, j'ai de nouveau rencontré le problème et sa solution ne fonctionnait pas. Pour moi, le correctif consistait à mettre à jour bundler
avec:
gem update bundler
Je crois que ma version de bundler
datait de plus de quelques mois.
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.
Quand j'ai voulu installer un bijou ActiveSupport:
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 certificate B
: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
Les étapes suivantes doivent uniquement copier les certificats des nouvelles fenêtres Ruby . Prenez le dernier Ruby (ou au moins Ruby 2.4.0) et procédez comme suit:
copier les certificats 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 (à nouveau ajuster à ce que vous avez besoin):C:\prg_sdk\rubies\Ruby231-p112-x64\lib\Ruby\2.3.0\rubygems\ssl_certs