J'essaie de faire le tutoriel de Michael Hartl. Lorsque j'essaie d'installer des rails 3.2.14 dans mon jeu de gemmes, j'obtiens le problème suivant:
$ gem install rails -v 3.2.14
ERREUR: Impossible de trouver une gemme 'rails' valide (= 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: la vérification du certificat a échoué ( https://s3.amazonaws.com/production.s3.rubygems.org /specs.4.8.gz )
Après avoir parcouru Google, j'ai découvert que je pouvais utiliser une source non SSL pour rubygems, j'ai donc exécuté:
sudo gem sources -a http://rubygems.org
Puis, quand j'ai essayé de réinstaller les rails, cela a réussi. Cependant, j'ai toujours eu le problème ci-dessus mais comme avertissement:
AVERTISSEMENT: impossible d'extraire des données de ' https://rubygems.org/ ': SSL_connect retourné = 1 errno = 0 état = SSLv3 lecture du certificat du serveur B: la vérification du certificat a échoué ( https://s3.amazonaws.com/production.s3 .rubygems.org / specs.4.8.gz )
Comment puis-je supprimer complètement cet avertissement / erreur?
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
la source
2.0.*
versions obsolètes ( ) derubygems
. Essayez de mettre à jour vers la dernière version de rubygems:gem update --system
puis relancezgem install
.gem sources -r https://rubygems.org/
fonctionné pour moi (en ce qui concerne la suppression de l'avertissement).Réponses:
Pour les utilisateurs RVM et OSX
Assurez-vous que vous utilisez le dernier rvm:
Ensuite, vous pouvez faire deux choses:
Mettre à jour les certificats:
Mettre à jour les rubygèmes:
Pour les utilisateurs non RVM
Rechercher le chemin du certificat:
Générer un certificat:
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 le package
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é)Remarque sur Windows
Les versions de Ruby Installer pour Windows sont préparées par Luis Lavena et le chemin vers les certificats affichera 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 pour correction.la source
rvm rubygems latest
entraîné une erreur se plaignant des sommes de contrôle manquantes. Cependant, les choses ont commencé à fonctionner sans cela aussi ... apparemment, vous pourriez le forcer avec--verify-downloads 1
si vous en aviez besoin. Des idées pourquoi cela pourrait être? Il a essayé de récupérer la versionrubygems-2.1.6
head
version et sortiraistable
bientôt.permission denied: /private/etc/ssl/cert.pem
Dernières découvertes ...
https://gist.github.com/luislavena/f064211759ee0f806c88
Plus important encore ... téléchargez https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
Découvrez où le coller
Ensuite, copiez simplement le fichier .pem dans ../2.1.0/rubygems/ssl_certs/ et continuez votre activité.
la source
.pem
extension, non.pem.txt
!AddTrustExternalCARoot-2048.pem
, 2) J'ai placé le fichier dansC:\Ruby193\lib\ruby\1.9.1\rubygems\ssl_certs
, 3) Je coursgem install susy
et j'obtiens 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
Lien Goto http://rubygems.org/pages/download
la source
Si vous souhaitez utiliser la source non SSL, essayez de supprimer d'abord la source HTTPS, puis ajoutez celle HTTP:
METTRE À JOUR:
Comme l'indique mpapis, cela ne doit être utilisé que comme solution de contournement 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:
la source
sudo gem sources -r https://rubygems.org/
etsudo gem sources -r http://rubygems.org/
. Remarquez la fuite/
./
, elle devrait également être supprimée avec la fin/
.Sous Windows, vous devrez utiliser la
HTTP
source pour mettre à jour,gem
puis revenir à l'utilisationHTTPS
.Edit: Attention, je ne suis pas sûr que ce soit sûr . Est-ce que quelqu'un sait si les packages ruby sont signés? La réponse acceptée ressemble à une meilleure solution.
la source
gem sources -l
à 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 juste après le système -. Voir rubygems.org/gems/rubygems-update/versions ou demander à un collègue pour quelsgem -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 le rencontrent: Mise à jour du certificat SSL La raison du problème est que rubygems.org est passé à un certificat SSL plus sécurisé (SHA-2 qui utiliser le cryptage 256 bits). L'outil de ligne de commande rubygems regroupe la référence au certificat correct. Par conséquent, rubygems lui-même ne peut pas être mis à jour à l'aide d'une ancienne version de rubygems. Rubygems doit d'abord être mis à jour manuellement.
Découvrez d'abord quels rubygèmes vous avez:
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. Running 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 la gem de mise à jour:
Exécutez la mise à jour de la gemme:
Vérifiez que rubygems a été mis à jour:
Désinstaller la gem de mise à jour:
À 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) sur https://rubygems.org/pages/download . Tous les certificats sont également disponibles sur: https://github.com/rubygems/rubygems/tree/master/lib/rubygems/ssl_certs
Découvrez où le mettre:
Placez ce fichier dans le répertoire «rubygems \ ssl_certs» à cet emplacement.
Conformément à la validation de rubygems , les certificats sont déplacés vers des répertoires plus spécifiques. Ainsi, actuellement, le certificat (AddTrustExternalCARoot-2048.pem) devrait se trouver sur le chemin suivant
lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
la source
Essayez d'utiliser le site Web source pour les gemmes, par exemple rubygems.org. Utilisez http au lieu de https. Cette méthode n'implique aucun travail tel que l'installation de certificats et tout ça.
Exemple -
Cela fonctionne, mais il y a cependant une mise en garde.
La gemme est installée, mais la documentation n'est pas due à des erreurs de cert. Voici l'erreur que j'obtiens
la source
La course a
gem update --system
fonctionné pour moila source
SSL_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 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 indiquées ci-dessus avant de remarquer que j'étais revenu d'un très ancien état suspendu et 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
la source
Désinstaller et réinstaller openssl avec homebrew a résolu ce problème pour moi.
brew uninstall --force openssl
brew install openssl
la source
brew uninstall --ignore-dependencies openssl
(qui est l'équivalent de l'ancienforce
drapeau)Pour les utilisateurs de Fedora
Mettez
cert.pem
à jour le fichier le plus récent fourni par cURL: http://curl.haxx.se/ca/cacert.pemla source
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. N'oubliez pas qu'il ne s'agit pas d'une violation de sécurité tant que vous pouvez valider le certificat comme approuvé.
la source
Dans mon cas, les certificats Ubuntu CA étaient obsolètes. Je l'ai corrigé en exécutant:
la source
Approche / one-liner qui peut être automatisée pour télécharger des gemmes en utilisant HTTP au lieu de HTTPS:
la source
Le cas particulier de RubyGems (l'outil de ligne de commande) est qu'il nécessite de regrouper à l'intérieur de 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 n'est pas en mesure de vérifier leur identité.
Il y a encore quelques mois, ce certificat était fourni par une autorité de certification, mais les certificats plus récents sont fournis 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 que les gens mettent à jour)
Tout le monde peut trouver sa solution en suivant les étapes simples indiquées dans le lien ci-dessous
https://gist.github.com/luislavena/f064211759ee0f806c88
la source
Essayer
J'espère que cela résout le problème.
la source
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)
Téléchargez le fichier cacert.pem depuis http://curl.haxx.se/ca/cacert.pem . Enregistrez ce fichier dans C: \ RailsInstaller \ cacert.pem.
Maintenant, informez Ruby de votre ensemble d'autorité de certification en définissant SSL_CERT_FILE. Pour définir cela dans votre session d'invite de commandes actuelle, tapez:
set SSL_CERT_FILE = C: \ RailsInstaller \ cacert.pem
la source
J'ai eu le même problème en essayant d'installer une gemme de concombre. Cependant, j'ai remarqué que gem gem bundler déjà installé avec ruby 2.0. J'ai créé un Gemfile.rb dans le dossier du projet avec les gemmes requises et j'ai suivi ces étapes
Tous les joyaux requis installés.
la source
Pour Illumos / Solaris utilisant OpenCSW pkgutil:
Installez CSWcacertificates avant «l'installation de gem»
Si vous utilisez un kit ruby qui n'est pas d'OpenCSW, votre version ruby peut s'attendre à trouver le fichier de certificat à un autre endroit. Dans ce cas, j'ai simplement lié symboliquement /etc/opt/csw/ssl/cert.pem d'OpenCSW à l'endroit attendu.
Vérifiez où ruby s'attend à le trouver:
Ensuite, s'il y a un écart, liez-le:
la source
Ou peut être empêché par un pare-feu comme moi. Essaye ça:
sudo gem install --http-proxy http: // localhost: port cocoapods -V
la source
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 accès à Internet, j'ai eu cette erreur SSL lorsque j'ai installé bundler 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'y avait 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 du bundler (cela peut sembler fou, mais cela travaillé...).
Grâce à une machine avec un accès illimité à Internet, téléchargé les fichiers suivants:
J'ai ajouté ces fichiers sur un serveur intranet, en conservant la structure de 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 de gemme:
J'ai couru avec le succès le "bundle d'installation de gemmes" après l'installation, il a suffi de retirer mon intranet de la gemme:
J'espère que c'est utile dans toute situation similaire ...
la source
En tant qu'utilisateur Windows 10, j'ai suivi la réponse de Dheerendra , et cela a fonctionné pour moi un jour. Le lendemain, j'ai de nouveau rencontré le problème et sa solution n'a pas fonctionné. Pour moi, le correctif consistait à mettre à jour
bundler
avec:gem update bundler
Je crois que ma version de datait de
bundler
plus de quelques mois.la source
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 source
La réponse n'est plus valable. Depuis que j'ai rencontré le problème avec des rubis Windows plus anciens en ce moment, je publierai la réponse.
Quand j'ai voulu installer une gemme de support actif:
Les étapes suivantes doivent copier uniquement les certificats de ruby Windows plus récent. Prenez le dernier rubis (ou au moins rubis 2.4.0 ) et procédez comme suit:
copiez les certificats de ces répertoires (adaptez-vous à 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 (ajustez à nouveau ce dont vous avez besoin):
C:\prg_sdk\rubies\Ruby231-p112-x64\lib\ruby\2.3.0\rubygems\ssl_certs
la source