Não é possível instalar nenhuma gema ruby no Mac OS - erro SSL_connect

Meu ambiente é o Mac OS 10.10.5, a versão ruby 2.2.4 (ou 2.2.2 ou 2.2.0) gem (após a atualização) é 2.6.7, rvm versão 1.27.0.

Isso tem várias duplicatas, mesmo nos últimos dias, mas é mais informação do que posso colocar em um comentário.

Ao instalar qualquer gema em qualquer versão do ruby, recebo o seguinte:

$ gem install bundler
ERROR:  Could not find a valid gem 'bundler' (>= 0), 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)

Há muitas informações disponíveis sobre isso, principalmente para problemas no Windows. Vejohttp://guides.rubygems.org/ssl-certificate-update/ para a solução proposta. Sigo isso, mas continuo recebendo o mesmo erro.

O problema parece estar na obtenção do arquivo GlobalSignRootCA.pem no local apropriado, o que não está totalmente claro. O link acima explica como encontrar o diretório ssl_certs apropriado, dos quais existem 2 no meu sistema, mas nenhum deles funciona.

Eu esqueço onde aprendi o seguinte:

$ ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_DIR'
/etc/openssl/certs
$ ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE'
/etc/openssl/cert.pem

que pode ter dado uma dica, mas anexar o arquivo .pem ao último ou copiar para o primeiro não tem efeito.

Quando reinstalo o openssl (homebrew), ele é útil para me dizer:

A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

mas isso também não resolve o problema.

De outra pergunta SO:

rvm osx-ssl-certs update all

não funciona Nem faz:

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

Alguém sabe como entender o que rubygems espera aqui? Onde ele quer esse arquivo ou é mesmo o arquivo que ele quer? Devo importar o arquivo .pem para o chaveiro OSX? Como é que alguém faz isso?

Ou existe uma maneira de obter o arquivo gem e instalá-lo localmente? rubygems faz isso de maneira útil para as próprias rubygems, mas não para as gemas individuais, pelo que sei.

-- Gambiarra

Ok - a resposta para a pergunta de onde obter a gema: vá parahttps://rubygems.org/gems/[package name] selecione uma versão e vá para o download - atualmente em links no lado direito. Faça o download do arquivo egem install --local [downloaded gem file]. Além de todas as dependências.

Para automatizar:

# start by adding insecure source for --explain - thanks to @tnum
gem source -a http://rubygems.org/
while read x 
do
wget https://rubygems.org/downloads/$x.gem
gem install --local $x.gem 
rm $x.gem
done < <(gem install --explain [package name] | grep "^  ")
# remove insecure source
gem source -r http://rubygems.org/

Parte da falta de segurança pode ser atenuada por um melhor regex grep, mas ainda é inseguro. Observe quewget https:// funciona, então o problema do ssl é definitivamente com rubygems.

questionAnswers(3)

yourAnswerToTheQuestion