ruby on rails - for - Error de SSL al instalar rubygems, no se pueden extraer datos de ''https://rubygems.org/
rvm install latest (22)
Asegúrese de que el reloj de su sistema sea correcto
Este error exacto me sucedió hoy en una máquina virtual de Ubuntu que se ejecuta en VirtualBox. Probé la mayoría de las soluciones mostradas anteriormente antes de notar que había reanudado desde un estado muy antiguo suspendido, y mi reloj estaba apagado por muchos días.
Actualizar el reloj inmediatamente solucionó mi problema. Aquí está el comando que utilicé en mi caso:
sudo service ntp stop && sudo ntpdate pool.ntp.org && sudo service ntp start
Estoy tratando de hacer el tutorial de Michael Hartl. Cuando intento instalar los rieles 3.2.14 en mi gemset, obtengo el siguiente problema:
$ gem instalar rieles -v 3.2.14
ERROR: No se pudo encontrar una gema válida ''rieles'' (= 3.2.14), aquí es por qué:
No se pueden descargar datos de https://rubygems.org/ - SSL_connect devuelto = 1 errno = 0 estado = SSLv3 certificado de servidor de lectura B: error de verificación del certificado ( https://s3.amazonaws.com/production.s3.rubygems.org/specs.4.8.gz )
Después de buscar en Google, encontré que podía usar una fuente no SSL para rubygems, así que corrí:
sudo gem sources -a http://rubygems.org
Luego, cuando intenté instalar los rieles de nuevo, tuvo éxito. Sin embargo, todavía tengo el problema anterior, pero como advertencia:
ADVERTENCIA: No se pueden extraer datos de '' https://rubygems.org/ '': SSL_connect devuelto = 1 errno = 0 estado = SSLv3 certificado de servidor de lectura B: error en la verificación del certificado ( https://s3.amazonaws.com/production.s3.rubygems.org/specs.4.8.gz )
¿Cómo puedo eliminar esta advertencia / error por completo?
Estoy usando lo siguiente:
- rvm 1.22.15
- ruby 2.0.0p247 (2013-06-27 revisión 41674) [x86_64-darwin12.3.0]
- OSX 10.8.5
Para Illumos / Solaris utilizando OpenCSW pkgutil:
Instale CSWcacertificates antes de ''instalar gema''
pkgutil -yi CSWcacertificates
Si está utilizando un kit de ruby que no es de OpenCSW, su versión de ruby esperará encontrar el archivo de certificado en otro lugar. En este caso, simplemente vinculé el enlace /etc/opt/csw/ssl/cert.pem de OpenCSW al lugar esperado.
Compruebe dónde Ruby espera encontrarlo:
export cf=`ruby -ropenssl -e ''puts OpenSSL::X509::DEFAULT_CERT_FILE''` && echo $cf
Entonces, si hay una discrepancia, vincúlala:
ln -s /etc/opt/csw/ssl/cert.pem $cf && file $cf
Para usuarios de Fedora.
Actualice cert.pem
al archivo más reciente que proporciona 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
Para usuarios de RVM y OSX
Asegúrate de usar la última rvm:
rvm get stable
Entonces puedes hacer dos cosas:
Actualizar certificados:
rvm osx-ssl-certs update all
Rubygems de actualización:
rvm rubygems latest
Para usuarios no RVM
Buscar ruta para el certificado:
cert_file=$(ruby -ropenssl -e ''puts OpenSSL::X509::DEFAULT_CERT_FILE'')
Generar certificado:
security find-certificate -a -p /Library/Keychains/System.keychain > "$cert_file"
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$cert_file"
El código completo: https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/osx-ssl-certs
Para no usuarios de OSX
Asegúrese de actualizar el paquete ca-certificates
. (En los sistemas antiguos puede que no esté disponible; no utilice ese sistema antiguo que ya no recibe actualizaciones de seguridad)
Nota de Windows
Las compilaciones de Ruby Installer para Windows están preparadas por Luis Lavena y la ruta a los certificados mostrará algo como C:/Users/Luis/...
visita https://github.com/oneclick/rubyinstaller/issues/249 para más detalles y esto responde https://.com/a/27298259/497756 para corregirlo.
Para usuarios de Windows (y quizás otros)
Rubygems.org tiene una guía que no solo explica cómo solucionar este problema, sino también por qué tantas personas lo tienen: Actualización del certificado SSL La razón del problema es que rubygems.org cambió a un certificado SSL más seguro (SHA-2, que utilizar cifrado de 256 bits). La herramienta de línea de comandos rubygems agrupa la referencia al certificado correcto. Por lo tanto, los rubygems no se pueden actualizar utilizando una versión anterior de rubygems. Rubygems primero debe actualizarse manualmente.
Primero averigua qué rubíes tienes:
rubygems –v
Dependiendo de si tiene un 1.8.x, 2.0.xo 2.2.x, deberá descargar una gema de actualización, llamada "rubygems-update-XYZgem", donde XYZ es la versión que necesita. Ejecución 1.8.x: descarga: https://github.com/rubygems/rubygems/releases/tag/v1.8.30 Ejecución 2.0.x: descarga: https://github.com/rubygems/rubygems/releases/tag/v2.0.15 ejecución 2.2.x: descarga: https://github.com/rubygems/rubygems/releases/tag/v2.2.3
Instalar actualización gema:
gem install –-local full_path_to_the_gem_file
Ejecutar actualización gema:
update_rubygems --no-ri --no-rdoc
Compruebe que rubygems fue actualizado:
rubygems –v
Desinstalar actualización gema:
gem uninstall rubygems-update -x
En este punto, puede estar bien. Pero es posible que no tenga el último archivo de clave pública para el nuevo certificado. Para hacer esto:
Descargue el certificado más reciente, (actualmente AddTrustExternalCARoot-2048.pem) desde rubygems.org/pages/download . Todos los certificados también se encuentran en: https://github.com/rubygems/rubygems/tree/master/lib/rubygems/ssl_certs
Averigua dónde ponerlo:
gem which rubygems
Coloque este archivo en el directorio "rubygems / ssl_certs" en esta ubicación.
Según la confirmación de rubygems , los certificados se mueven a directorios más específicos. Por lo tanto, actualmente se espera que el certificado (AddTrustExternalCARoot-2048.pem) esté en la siguiente ruta lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
Para usuarios de windows
Ir al enlace http://rubygems.org/pages/download
- Descarga el último archivo zip (en mi caso 2.4.5)
- Descomprimirlo
- ejecuta "ruby setup.rb" en la carpeta descomprimida
- ahora ejecuta el comando de instalación de gemas
Últimos hallazgos ...
https://gist.github.com/luislavena/f064211759ee0f806c88
Lo más importante ... descargue https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
Averiguar dónde pegarlo
C:/>gem which rubygems
C:/Ruby21/lib/ruby/2.1.0/rubygems.rb
Luego simplemente copie el archivo .pem en ../2.1.0/rubygems/ssl_certs/ y continúe con su negocio.
Asegúrese de que haya instalado Ruby con la opción --disable-binary , si no, desinstálelo y vuelva a instalarlo con la opción.
más información here
Como usuario de Windows 10, seguí la answer de Dheerendra y un día me funcionó. Al día siguiente, volví a experimentar el problema y su solución no funcionó. Para mí, la solución fue actualizar bundler
con:
gem update bundler
Creo que mi versión de bundler
tenía más de unos pocos meses.
Corriendo gem update --system
funcionó para mí
El caso particular de RubyGems (la herramienta de línea de comandos) es que requiere que se incluyan dentro de su código los certificados de confianza, que permiten a RubyGems establecer una conexión con los servidores incluso cuando el sistema operativo base no puede verificar la identidad de ellos.
Hasta hace unos meses, este certificado lo proporcionaba una entidad emisora de certificados, pero otro certificado más reciente lo proporcionaba.
Debido a esto, las instalaciones existentes de RubyGems tendrían que actualizarse antes del cambio del certificado y dar suficiente tiempo para que se propague el cambio (y que las personas se actualicen)
Cualquiera puede encontrar su solución siguiendo los sencillos pasos que se indican en el siguiente enlace
En Windows, tendrá que usar HTTP
fuente HTTP
para actualizar la gem
luego volver a usar 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/
Edición: Advertencia No estoy seguro si esto es seguro . ¿Alguien sabe si los paquetes ruby están firmados? La respuesta aceptada parece una mejor solución.
En mi caso, los certificados CA de Ubuntu estaban desactualizados. Lo arreglé corriendo:
sudo update-ca-certificates
La respuesta ya no es válida. Ya que he encontrado el problema con el Windows Ruby más antiguo ahora mismo, publicaré la respuesta.
Cuando quise instalar una gema 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)
Los siguientes pasos deben copiar solo los certificados de Windows Ruby más nuevos. Toma el último rubí (o al menos rubí 2.4.0 ) y haz lo siguiente:
Copie los certificados de estos directorios (ajuste a sus necesidades):
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
a destino (nuevamente ajuste a lo que necesita):
C:/prg_sdk/rubies/Ruby231-p112-x64/lib/ruby/2.3.0/rubygems/ssl_certs
O puede ser prevenido por firewall como yo. Prueba esto:
sudo gem install --http-proxy http://localhost:port cocoapods -V
Para usuarios de Windows:
Después de instalar Ruby 2.2.3 (+ rubygems 2.5.1) con éxito en una máquina de prueba con acceso a Internet, tuve este error de SSL cuando instalé el agrupador en una máquina de producción, dentro de la red.
Como tenía limitaciones de acceso a la red, y no había manera de cambiar la configuración del acceso SSL, y en función de los mensajes de error, realicé los pasos a continuación para poder finalizar la instalación del paquete (esto puede parecer una locura, pero trabajó...).
A través de una máquina con acceso ilimitado a Internet, descargó los siguientes archivos:
- spec.4.8.gz ( http://rubygems.global.ssl.fastly.net/spec.4.8.gz )
- latest_specs.4.8.gz ( http://rubygems.global.ssl.fastly.net/latest_specs.4.8.gz )
- bundler 1.11.2.gemspec.rz ( http://rubygems.global.ssl.fastly.net/quick/Marshal.4.8/bundler-1.11.2.gemspec.rz )
- bundler-1.11.2.gem ( http://rubygems.global.ssl.fastly.net/gems/bundler-1.11.2.gem )
Agregué estos archivos en un servidor de intranet, manteniendo la estructura de carpetas de los enlaces anteriores:
- $ INTRANET_HOME
spec.4.8.gz e latest_specs.4.8.gz
- $ INTRANET_HOME / quick / Marshal.4.8
bundler-1.11.2.gemspec.rz
- $ INTRANET_HOME / gems
bundler-1.11.2.gem
Luego agregué mi intranet para acceder a la fuente de gemas:
gem sources -a http://mydomain.com.br
He ejecutado con el éxito el "gem install bundler" después de la instalación, todo lo que tomó fue eliminar mi intranet de la gema:
gem sources -r http://mydomain.com.br
Espero que sea de utilidad en cualquier situación similar ....
Si desea utilizar una fuente que no sea SSL, intente eliminar primero la fuente HTTPS y luego agregue la HTTP:
sudo gem sources -r https://rubygems.org
sudo gem sources -a http://rubygems.org
ACTUALIZAR:
Como indica mpapis, esto debe usarse solo como una solución temporal. Podría haber algunos problemas de seguridad si accede a RubyGems a través de una fuente no SSL.
Una vez que la solución ya no sea necesaria, debe restaurar la fuente SSL:
sudo gem sources -r http://rubygems.org
sudo gem sources -a https://rubygems.org
Si está utilizando Windows, abra https://rubygems.org/ con internet explorer.
Haga clic en la información de seguridad e importe el certificado. La conclusión es que su cadena de certificación está desactualizada y necesita agregar este nuevo certificado. Recuerde que esto no es una infracción de seguridad siempre que pueda validar el certificado como confiable.
Simplemente desinstalar y reinstalar openssl con homebrew solucionó este problema por mí.
brew uninstall --force openssl
brew install openssl
Tratar
gem update --system
Espero que resuelva el problema.
Trate de usar el sitio web de origen para las gemas, es decir, rubygems.org. Utilice http en lugar de https. Este método no implica ningún trabajo, como la instalación de certificados y todo eso.
Ejemplo -
gem install typhoeus --source http://rubygems.org
Esto funciona, pero hay una advertencia sin embargo.
La gema está instalada, pero la documentación no se debe a errores de certificación. Aquí está el error que recibo
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)
Tuve el mismo problema al intentar instalar la gema de pepino. Sin embargo me di cuenta de que la gema bundler ya está instalada con ruby 2.0. Creé un archivo Gemfile.rb en la carpeta del proyecto con las gemas necesarias y seguí estos pasos
- Navegar a la carpeta del proyecto
- Tipo de instalación de paquete
Todas las gemas necesarias instaladas.