ruby on rails - verificador - la instalación del paquete falla con un error de verificación de certificado SSL
verificar certificado ssl (28)
Cuando ejecuto bundle install
para mi proyecto Rails 3 en Centos 5.5, falla con un error:
Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3
read server certificate B: certificate verify failed
(https://bb-m.rubygems.org/gems/multi_json-1.3.2.gem)
An error occured while installing multi_json (1.3.2), and Bundler cannot continue.
Make sure that `gem install multi_json -v ''1.3.2''` succeeds before bundling.
Cuando intento instalar la gema manualmente (por gem install multi_json -v ''1.3.2''
) funciona. El mismo problema ocurre con varias otras gemas. Yo uso RVM (1.12.3), ruby 1.9.2, bundler 1.1.3.
¿Como arreglarlo?
Si estás utilizando rails-assets
Si estaba usando https://rails-assets.org/
para administrar sus activos, ninguna respuesta lo ayudará. Incluso la conversión a http
no ayudará.
La solución más simple es usar esta fuente en su lugar, http://insecure.rails-assets.org
. Esto ha sido mencionado en su homepage .
Así es como arreglas este problema en Windows:
descargue el archivo .perm y luego establezca SSL_CERT_FILE en el símbolo del sistema
Copia sencilla de las instrucciones de pegado aquí acerca del archivo .pem.
https://gist.github.com/luislavena/f064211759ee0f806c88
Por verificación de certificado fallida
Si ha leído las secciones anteriores, sabrá lo que esto significa (y vergüenza> sobre usted si no lo ha hecho).
Necesitamos descargar AddTrustExternalCARoot-2048.pem . Abra un símbolo del sistema y escriba:
C:> gema que rubygems C: /Ruby21/lib/ruby/2.1.0/rubygems.rb Ahora, localicemos ese directorio. Desde la misma ventana, ingrese la parte de la ruta hasta la extensión del archivo, pero en su lugar use barras diagonales inversas:
C:> iniciar C: / Ruby21 / lib / ruby / 2.1.0 / rubygems Esto abrirá una ventana del Explorador dentro del directorio que indicamos.
Paso 3: Copia nuevo certificado de confianza
Ahora, localice el directorio ssl_certs y copie el archivo .pem que obtuvimos en el paso anterior.
Se listará con otros archivos como GeoTrustGlobalCA.pem.
Descargar https://rubygems.org/downloads/rubygems-update-2.6.7.gem .
Ahora, usando su símbolo del sistema:
C:/>gem install --local C:/rubygems-update-2.6.7.gem
C:/>update_rubygems --no-ri --no-rdoc
Después de esto, gem --version
debe informar la nueva versión actualizada.
Ahora puedes desinstalar de forma segura rubygems-update gema:
C:/>gem uninstall rubygems-update -x
Removing update_rubygems
Successfully uninstalled rubygems-update-2.6.7
En windows7 puede descargar el archivo cacert.pem desde here y configurar SSL_CERT_FILE de la variable ambiental en la ruta donde almacena el certificado, por ejemplo
SET SSL_CERT_FILE="C:/users/<username>/cacert.pem"
o puede configurar la variable en su secuencia de comandos como esta ENV[''SSL_CERT_FILE'']="C:/users/<username>/cacert.pem"
Reemplace <nombre de usuario> con su propio nombre de usuario.
Estaba recibiendo un error similar. Aquí es cómo resolví esto: En su directorio de ruta, busque Gemfile. Edite la fuente en el archivo gem a http en lugar de https y guárdelo. Esto podría instalar el empaquetador sin el problema de certificado SSL.l
Este problema ahora debería ser arreglado. Actualice rubygems ( gem update --system
), asegúrese de que openssl esté en la última versión de su sistema operativo, o pruebe estos consejos que aún no funcionan: http://railsapps.github.com/openssl-certificate-verify-failed. html
Esto funcionó para mí:
- descarga la última gema en https://rubygems.org/pages/download
- instala la gema con
gem install --local [path to downloaded gem file]
- actualiza las gemas con
update_rubygems
- comprueba que estás en la última versión de
gem --version
congem --version
Esto ha sido arreglado
guides.rubygems.org/ssl-certificate-update
Ahora que se ha lanzado RubyGems 2.6.x, puede actualizar manualmente a esta versión.
Descargue https://rubygems.org/downloads/rubygems-update-2.6.7.gem
Descargue el archivo en un directorio al que puede apuntar más adelante (por ejemplo, la raíz de su disco duro C :)
Ahora, usando su símbolo del sistema:
C:/>gem install --local C:/rubygems-update-2.6.7.gem
C:/>update_rubygems --no-ri --no-rdoc
Después de esto, gema --version debe informar la nueva versión actualizada.
Ahora puedes desinstalar de forma segura rubygems-update gema:
C:/>gem uninstall rubygems-update -x
Gracias a @ Alexander.Iljushkin por:
gem update --system --source http://rubygems.org/
Después de que el bundler todavía fallara y la solución a eso era:
gem install bundler
Hace poco me enfrenté a este problema y seguí los pasos que se describen here . Es posible que no esté apuntando al certificado OpenSSL correcto. Despues de correr:
rvm osx-ssl-certs status all
rvm osx-ssl-certs update all
y
export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
el paquete completo corrió!
La razón es viejos rubygems. Primero debe actualizar la parte del sistema utilizando una fuente que no sea SSL:
gem update --system --source http://rubygems.org/
(actualizando temporalmente la parte del sistema usando una conexión no ssl).
Ahora estás listo para usar la gem update
.
La solución más simple:
rvm pkg install openssl
rvm reinstall all --force
Voila!
La solución real a este problema, si está utilizando RVM:
- Rubygems de actualización:
gem update --system
- Utilice RVM para actualizar
rvm osx-ssl-certs update all
SSL:rvm osx-ssl-certs update all
¡Un consejo para este consejo sobre el proyecto RailsApps !
Lo único que me funcionó en el sistema de Windows heredado y en la versión Ruby 1.9 es descargar el archivo cacert desde guides.rubygems.org/ssl-certificate-update
Y luego ejecutando el siguiente comando antes de ejecutar bundle install
bundle config --global ssl_ca_cert /path/to/file.pem
Mi solución permanente para Windows:
Descargue el CACert , guarde como
C:/ruby/ssl_certs/GlobalSignRootCA.pem
desde guides.rubygems.org/ssl-certificate-updateCree una variable del sistema llamada " SSL_CERT_FILE ", establecida en
C:/ruby/ssl_certs/GlobalSignRootCA.pem
.Inténtalo de nuevo:
gem install bundler
:
C:/gem sources *** CURRENT SOURCES *** https://rubygems.org/ C:/gem install bundler Fetching: bundler-1.13.5.gem (100%) Successfully installed bundler-1.13.5 1 gem installed
Para aquellos de ustedes que tienen Ruby instalado a través de RVM y desean una solución rápida (prefiriendo no leer según la solicitud de Bruno), intente esto:
rvm remove 1.9.x (or whatever version of ruby you are using)
rvm pkg install openssl
rvm install 1.9.2 --with-openssl-dir=$rvm_path/usr
Para más detalles, aquí está el enlace donde encontré la solución.
http://railsapps.github.com/openssl-certificate-verify-failed.html
Por cierto, no tuve que tocar mis certificados en Ubuntu.
Lo mejor de todo, esto no es una solución. Descargará gemas a través de SSL y fallará si hay un problema como un hombre en el ataque central que es mucho mejor que simplemente desactivar la seguridad.
Para la máquina de Windows, compruebe su versión gema con
gem --version
Luego actualiza tu gema como sigue:
- Ejecutando 1.8.x: descarga 1.8.30
- Ejecutando 2.0.x: descarga 2.0.15
- Ejecutando 2.2.x: descarga 2.2.3
Descargue el archivo en un directorio al que puede apuntar más adelante (por ejemplo, la raíz de su disco duro C :)
Ahora, usando su símbolo del sistema:
C:/>gem install --local C:/rubygems-update-1.8.30.gem
C:/>update_rubygems --no-ri --no-rdoc
Ahora, la instalación del paquete se realizará sin error de verificación de certificado SSL.
La instrucción más detallada está https://gist.github.com/luislavena/f064211759ee0f806c88
Para tener en cuenta, si está capturando gemas de una fuente en la que una autoridad de certificación interna confía en el certificado SSL (o se está conectando a una fuente externa a través de un proxy web de la empresa con inspección SSL), dirija la variable env de SSL_CERT_FILE a su cadena de certificados . Es muy probable que esto requiera exportar su certificado raíz desde su almacén de certificados (System Keychain en macOS) a una ubicación accesible desde su shell, es decir:
export SSL_CERT_FILE=~/RootCert.pem
Pude rastrear esto hasta el hecho de que los binarios que descargan rvm
no funcionan bien con OpenSSL de OS X, que es antiguo y ya no lo usa el sistema operativo.
La solución para mí fue forzar la compilación al instalar Ruby a través de rvm
:
rvm reinstall --disable-binary 2.2
Puede descargar una lista de certificados de CA del sitio web de curl en here
Luego configure la variable de entorno SSL_CERT_FILE para decirle a Ruby que la use. Por ejemplo, en Linux:
$ SSL_CERT_FILE=~/cacert.pem bundle install
(Referencia: https://gist.github.com/fnichol/867550 )
Recibo un error ligeramente diferente, aunque quizás relacionado, en Ubuntu 12.04:
Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=unknown state: sslv3 alert handshake failure (https://d2chzxaqi4y7f8.cloudfront.net/gems/activesupport-3.2.3.gem)
An error occured while installing activesupport (3.2.3), and Bundler cannot continue.
Make sure that `gem install activesupport -v ''3.2.3''` succeeds before bundling.
Ocurre cuando ejecuto bundle install
con la source ''https://rubygems.org''
en un Gemfile.
Este es un problema con OpenSSL en Ubuntu 12.04. Ver el número 319 de Rubygems .
Para solucionarlo, ejecute apt-get update && apt-get upgrade
en Ubuntu 12.04 para actualizar su OpenSSL.
Reemplace la fuente de la gema ssl con non-ssl como una solución temporal:
- fuentes de gemas -r https://rubygems.org/
- fuentes de gemas -a http://rubygems.org/
Si está usando un mac y usa una versión reciente de RVM (~ 1.20), el siguiente comando funcionó para mí.
rvm osx-ssl-certs update
Solución temporal (como lo alude Ownatik):
Cree o modifique un archivo llamado .gemrc en su ruta de inicio, incluida la línea :ssl_verify_mode: 0
Esto evitará que Bundler compruebe los certificados SSL de gemas cuando intente instalarlos.
Para dispositivos * nix, ''ruta de inicio'' significa ~/.gemrc
. También puede crear /etc/gemrc
si lo prefiere. Para Windows XP, ''ruta de inicio'' significa c:/Documents and Settings/All Users/Application Data/gemrc
. Para Windows 7, C:/ProgramData/gemrc
Tuve que reinstalar openssl:
brew uninstall --force openssl
brew install openssl
mismo problema pero con diferentes gemas aquí:
Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3
read server certificate B: certificate verify failed
(https://bb-m.rubygems.org/gems/builder-3.0.0.gem)
An error occured while installing builder (3.0.0), and Bundler cannot continue.
Make sure that `gem install builder -v ''3.0.0''` succeeds before bundling.
solución temporal: gem install builder -v ''3.0.0''
hace posible continuar la bundle install
Actualizar
Ahora que tengo karma lo suficientemente ... extraído de esta respuesta, todos deberían saber que esto debería haberse solucionado.
re: a través de Ownatik, la instalación del paquete falla con un error de verificación de certificado SSL
gem update --system
Mi respuesta sigue siendo correcta y se deja a continuación como referencia si eso no funciona para usted.
Honestamente la mejor solución temporal es
[...] use la versión no-ssl de rubygems en su gemfile como una solución temporal.
a través del usuario Ownatik
lo que significan es en la parte superior del Gemfile
en el cambio de directorio de su aplicación de rieles
source ''https://rubygems.org''
a
source ''http://rubygems.org''
Tenga en cuenta que la segunda versión es http en lugar de http s