Estou tentando fazer o tutorial de Michael Hartl. Quando tento instalar os trilhos 3.2.14 no meu gemset, recebo o seguinte problema:
$ gem install rails -v 3.2.14
ERRO: Não foi possível encontrar um 'trilho' de gema válido (= 3.2.14), eis o motivo:
Não foi possível fazer o download dos dados em https://rubygems.org/ - SSL_connect retornou = 1 erro = 0 estado = SSLv3 leu o certificado do servidor B: falha na verificação do certificado ( https://s3.amazonaws.com/production.s3.rubygems.org /specs.4.8.gz )
Depois de pesquisar no Google, descobri que podia usar uma fonte não SSL para rubygems, então executei:
sudo gem sources -a http://rubygems.org
Então, quando tentei instalar os trilhos novamente, foi bem-sucedido. No entanto, ainda recebi o problema acima, mas como um aviso:
AVISO: Não é possível extrair dados de ' https://rubygems.org/ ': SSL_connect retornado = 1 errno = 0 state = SSLv3 lê o certificado do servidor B: a verificação do certificado falhou ( https://s3.amazonaws.com/production.s3 .rubygems.org / specs.4.8.gz )
Como posso remover completamente este aviso / erro?
Estou usando o seguinte:
- rvm 1.22.15
- ruby 2.0.0p247 (27-06-2013 revisão 41674) [x86_64-darwin12.3.0]
- OSX 10.8.5
fonte
2.0.*
versões obsoletas ( ) dorubygems
. Tente atualizar para a versão mais recente do rubygems:gem update --system
e execute novamentegem install
.gem sources -r https://rubygems.org/
funcionou para mim (na medida em que remover o aviso).Respostas:
Para usuários RVM e OSX
Certifique-se de usar o mais recente rvm:
Então você pode fazer duas coisas:
Atualizar certificados:
Atualize rubygems:
Para usuários não RVM
Encontre o caminho para o certificado:
Gere certificado:
Todo o código: https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/osx-ssl-certs
Para usuários não OSX
Certifique-se de atualizar o pacote
ca-certificates
. (em sistemas antigos, pode não estar disponível - não use um sistema antigo que não receba mais atualizações de segurança)Nota do Windows
As versões do Ruby Installer para Windows são preparadas por Luis Lavena e o caminho para os certificados mostrará algo como
C:/Users/Luis/...
verifique https://github.com/oneclick/rubyinstaller/issues/249 para obter mais detalhes e esta resposta https://stackoverflow.com / a / 27298259/497756 para correção.fonte
rvm rubygems latest
resultou em um erro de reclamação sobre a falta de somas de verificação. No entanto, as coisas começaram a funcionar sem isso também ... aparentemente você poderia forçá-lo,--verify-downloads 1
se necessário. Alguma idéia do porquê disso? Tentou recuperar a versãorubygems-2.1.6
head
versão e será lançado emstable
breve.permission denied: /private/etc/ssl/cert.pem
Últimos resultados ...
https://gist.github.com/luislavena/f064211759ee0f806c88
Mais importante ainda ... baixe https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
Descobrir onde colocá-lo
Em seguida, basta copiar o arquivo .pem em ../2.1.0/rubygems/ssl_certs/ e continuar com seus negócios.
fonte
.pem
extensão, não.pem.txt
!AddTrustExternalCARoot-2048.pem
, 2) Coloquei o arquivo emC:\Ruby193\lib\ruby\1.9.1\rubygems\ssl_certs
, 3) Eu corrogem install susy
e recebo o mesmo erroUnable 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
Para usuários do Windows
Ir para o link http://rubygems.org/pages/download
fonte
Se você deseja usar a fonte não SSL, tente remover a fonte HTTPS primeiro e, em seguida, adicione a fonte HTTP:
ATUALIZAR:
Como afirma o mpapis, isso deve ser usado apenas como uma solução temporária. Pode haver algumas preocupações de segurança se você estiver acessando o RubyGems através da fonte não SSL.
Quando a solução alternativa não for mais necessária, você deve restaurar a fonte SSL:
fonte
sudo gem sources -r https://rubygems.org/
esudo gem sources -r http://rubygems.org/
. Observe a trilha/
./
, ela também deve ser removida com o final/
.No Windows, você precisará usar a
HTTP
fonte para atualizargem
e voltar a usarHTTPS
.Edit: Warning Não tenho certeza se isso é seguro . Alguém sabe se os pacotes ruby estão assinados? A resposta aceita parece uma solução melhor.
fonte
gem sources -l
a ver suas fontes antes e depois da atualização do sistema. Se a atualização falhar, especifique um número de versão logo após o sistema -. Veja rubygems.org/gems/rubygems-update/versions ou pergunte a colegas de trabalho quaisgem -v
relatórios.Para usuários do Windows (e talvez outros)
O Rubygems.org tem um guia que não apenas explica como corrigir esse problema, mas também porque muitas pessoas o estão enfrentando: Atualização do certificado SSL O motivo do problema é que o rubygems.org mudou para um certificado SSL mais seguro (SHA-2 que use criptografia de 256 bits). A ferramenta de linha de comando rubygems agrupa a referência ao certificado correto. Portanto, o próprio rubygems não pode ser atualizado usando uma versão mais antiga do rubygems. Rubygems devem primeiro ser atualizados manualmente.
Primeiro descubra quais rubygems você tem:
Dependendo se você possui um 1.8.x, 2.0.x ou 2.2.x, será necessário fazer o download de uma atualização, denominada “rubygems-update-XYZgem”, em que XYZ é a versão que você precisa. Execução 1.8.x: download: https://github.com/rubygems/rubygems/releases/tag/v1.8.30 Execução 2.0.x: download: https://github.com/rubygems/rubygems/releases/tag/v2 .0.15 Executando o 2.2.x: download: https://github.com/rubygems/rubygems/releases/tag/v2.2.3
Instale a atualização gem:
Execute a atualização gem:
Verifique se rubygems foi atualizado:
Desinstale a atualização gem:
Neste ponto, você pode estar bem. Mas é possível que você não tenha o arquivo de chave pública mais recente para o novo certificado. Para fazer isso:
Faça o download do certificado mais recente (atualmente AddTrustExternalCARoot-2048.pem) em https://rubygems.org/pages/download . Todos os documentos também estão localizados em: https://github.com/rubygems/rubygems/tree/master/lib/rubygems/ssl_certs
Descubra onde colocá-lo:
Coloque este arquivo no diretório "rubygems \ ssl_certs" neste local.
Conforme confirmado por rubygems , os certificados são movidos para diretórios mais específicos. Portanto, atualmente o certificado (AddTrustExternalCARoot-2048.pem) deve estar no caminho a seguir
lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
fonte
Tente usar o site de origem para as gemas, ou seja, rubygems.org. Use http em vez de https. Este método não envolve nenhum trabalho, como a instalação de certificados e tudo mais.
Exemplo -
Isso funciona, mas há uma ressalva.
A gem está instalada, mas a documentação não é devido a erros de certificação. Aqui está o erro que recebo
fonte
Correr
gem update --system
funcionou para mimfonte
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
Verifique se o relógio do sistema está correto
Esse erro exato aconteceu comigo hoje em uma máquina virtual Ubuntu rodando no VirtualBox. Tentei a maioria das soluções mostradas acima antes de perceber que havia voltado de um estado suspenso muito antigo e meu relógio estava desativado por muitos dias.
A atualização do relógio corrigiu imediatamente o meu problema. Aqui está o comando que usei no meu caso:
parada do ntp do serviço sudo && sudo ntpdate pool.ntp.org && início do ntp do serviço sudo
fonte
Simplesmente desinstalar e reinstalar o openssl com o homebrew resolveu esse problema para mim.
brew uninstall --force openssl
brew install openssl
fonte
brew uninstall --ignore-dependencies openssl
(o que é o equivalente do velhoforce
flag)Para usuários do Fedora
Atualize o
cert.pem
arquivo para o mais novo fornecido pelo cURL: http://curl.haxx.se/ca/cacert.pemfonte
Se você estiver usando o Windows, abra https://rubygems.org/ com o Internet Explorer.
Clique nas informações de segurança e importe o certificado. O resultado final é que sua cadeia de certificação está desatualizada e você precisa adicionar este novo certificado. Lembre-se de que isso não é uma violação de segurança, desde que você possa validar o certificado como confiável.
fonte
No meu caso, os certificados CA do Ubuntu estavam desatualizados. Corrigi-o executando:
fonte
Abordagem / one-liner que pode ser automatizada para baixar gemas usando HTTP em vez de HTTPS:
fonte
O caso específico do RubyGems (a ferramenta de linha de comando) é que ele requer agrupar dentro de seu código os certificados confiáveis, o que permite ao RubyGems estabelecer uma conexão com os servidores, mesmo quando o sistema operacional básico não consegue verificar a identidade deles.
Até alguns meses atrás, esse certificado era fornecido por uma autoridade de certificação, mas um certificado mais novo era fornecido por uma autoridade de certificação diferente.
Por esse motivo, as instalações existentes do RubyGems precisariam ser atualizadas antes da troca do certificado e permitiriam tempo suficiente para que a mudança se espalhasse (e as pessoas atualizassem)
Qualquer pessoa pode encontrar sua solução seguindo as etapas simples fornecidas no link abaixo
https://gist.github.com/luislavena/f064211759ee0f806c88
fonte
Experimentar
Espero que isso resolva o problema.
fonte
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)
Faça o download do arquivo cacert.pem em http://curl.haxx.se/ca/cacert.pem . Salve este arquivo em C: \ RailsInstaller \ cacert.pem.
Agora, torne o ruby ciente do seu pacote de autoridade de certificação configurando SSL_CERT_FILE. Para definir isso na sessão atual do prompt de comando, digite:
configure SSL_CERT_FILE = C: \ RailsInstaller \ cacert.pem
fonte
Eu tive o mesmo problema ao tentar instalar a gema de pepino. No entanto, notei que a jóia do bundler já está instalada com o ruby 2.0. Criei um Gemfile.rb na pasta do projeto com as gemas necessárias e segui estas etapas
Todas as gemas necessárias instaladas.
fonte
Para Illumos / Solaris usando o OpenCSW pkgutil:
Instale CSWcacertificates antes de 'gem install'
Se você estiver usando um kit ruby que não seja do OpenCSW, sua versão do ruby poderá encontrar o arquivo de certificado em outro local. Nesse caso, simplesmente vinculei o /etc/opt/csw/ssl/cert.pem do OpenCSW ao local esperado.
Verifique onde o ruby espera encontrá-lo:
Então, se houver uma discrepância, vincule-a:
fonte
Ou pode ser impedido por firewall como eu. Tente o seguinte:
sudo gem install --http-proxy http: // localhost: port cocoapods -V
fonte
Para usuário do Windows:
Depois de instalar o Ruby 2.2.3 (+ rubygems 2.5.1) com êxito em uma máquina de teste com acesso à Internet, tive esse erro SSL ao instalar o empacotador em uma máquina de produção, dentro da rede.
Como eu tinha limitações de acesso à rede e não havia como alterar as configurações de acesso SSL, e com base nas mensagens de erro, executei as etapas abaixo para concluir a instalação do bundler (isso pode parecer loucura, mas trabalhou ...).
Por meio de uma máquina com acesso irrestrito à Internet, baixou os seguintes arquivos:
Adicionei esses arquivos em um servidor de intranet, mantendo a estrutura de pastas dos links acima:
spec.4.8.gz e latest_specs.4.8.gz
bundler-1.11.2.gemspec.rz
bundler-1.11.2.gem
Então eu adicionei minha intranet para acessar a fonte da gema:
Corri com o sucesso o "gem install bundler" após a instalação, bastava remover minha intranet da gem:
Espero que seja útil em qualquer situação semelhante ....
fonte
Como usuário do Windows 10, segui a resposta de Dheerendra e funcionou para mim um dia. No dia seguinte, tive o problema novamente e sua correção não funcionou. Para mim, a correção era atualizar
bundler
com:gem update bundler
Acredito que minha versão
bundler
tinha mais de alguns meses.fonte
Verifique se você instalou o ruby com a opção --disable-binary , caso contrário, desinstale-o e reinstale-o com a opção
mais informações aqui
fonte
A resposta não é mais válida. Desde que eu encontrei o problema com o ruby mais antigo do Windows agora, postarei a resposta.
Quando eu queria instalar uma jóia do activeesupport:
As etapas a seguir precisam copiar apenas os certificados do Windows Ruby mais recente. Pegue o último ruby (ou pelo menos o ruby 2.4.0 ) e faça o seguinte:
copie certificados desses diretórios (ajuste de acordo com suas necessidades):
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
ao destino (ajuste novamente o que você precisa):
C:\prg_sdk\rubies\Ruby231-p112-x64\lib\ruby\2.3.0\rubygems\ssl_certs
fonte