Estoy tratando de hacer el tutorial de Michael Hartl. Cuando intento instalar rieles 3.2.14 en mi conjunto de gemas, aparece el siguiente problema:
$ gem instalar rieles -v 3.2.14
ERROR: no se pudo encontrar una gema válida 'rieles' (= 3.2.14), esta es la razón:
No se pueden descargar datos de https://rubygems.org/ - SSL_connect devuelto = 1 errno = 0 estado = SSLv3 lee el certificado del servidor B: la verificación del certificado falló ( https://s3.amazonaws.com/production.s3.rubygems.org /specs.4.8.gz )
Después de buscar en Google, descubrí que podía usar una fuente no SSL para rubygems, así que ejecuté:
sudo gem sources -a http://rubygems.org
Luego, cuando intenté instalar rieles nuevamente, fue exitoso. Sin embargo, todavía tengo el problema anterior, pero como advertencia:
ADVERTENCIA: No se pueden obtener datos de ' https://rubygems.org/ ': SSL_connect devuelto = 1 errno = 0 estado = SSLv3 lee el certificado del servidor B: la verificación del certificado falló ( 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
fuente
2.0.*
versiones obsoletas ( ) derubygems
. Intente actualizar a la última versión de rubygems:gem update --system
y luego vuelva a ejecutargem install
.gem sources -r https://rubygems.org/
funcionó para mí (en cuanto a eliminar la advertencia).Respuestas:
Para usuarios de RVM y OSX
Asegúrese de utilizar la última versión de rvm:
Entonces puedes hacer dos cosas:
Actualizar certificados:
Actualizar rubygems:
Para usuarios no RVM
Encuentra la ruta para el certificado:
Generar certificado:
Todo el código: https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/osx-ssl-certs
Para usuarios no OSX
Asegúrese de actualizar el paquete
ca-certificates
. (en sistemas antiguos puede que no esté disponible; no use un sistema antiguo que ya no reciba actualizaciones de seguridad)Nota de Windows
Las compilaciones de Ruby Installer para Windows son preparadas por Luis Lavena y la ruta a los certificados mostrará algo como
C:/Users/Luis/...
verificar https://github.com/oneclick/rubyinstaller/issues/249 para más detalles y esta respuesta https://stackoverflow.com / a / 27298259/497756 para la reparación.fuente
rvm rubygems latest
resultó en un error quejándose de la falta de sumas de verificación. Sin embargo, las cosas comenzaron a funcionar sin eso también ... aparentemente podrías forzarlo--verify-downloads 1
si lo necesitaras. ¿Alguna idea de por qué podría ser? Trató de recuperar la versiónrubygems-2.1.6
head
versión y los lanzaréstable
pronto.permission denied: /private/etc/ssl/cert.pem
Ú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
Averigua dónde pegarlo
Luego solo copie el archivo .pem en ../2.1.0/rubygems/ssl_certs/ y continúe con su negocio.
fuente
.pem
extensión, no.pem.txt
!AddTrustExternalCARoot-2048.pem
, 2) coloqué el archivo enC:\Ruby193\lib\ruby\1.9.1\rubygems\ssl_certs
, 3) ejecutogem install susy
y obtengo el mismo errorUnable 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 usuarios de windows
Ir al enlace http://rubygems.org/pages/download
fuente
Si desea utilizar la fuente no SSL, intente eliminar primero la fuente HTTPS y luego agregue la fuente HTTP:
ACTUALIZAR:
Como dice mpapis, esto debe usarse solo como una solución temporal. Podría haber algunos problemas de seguridad si está accediendo a RubyGems a través de una fuente que no es SSL.
Una vez que ya no se necesite la solución alternativa, debe restaurar la fuente SSL:
fuente
sudo gem sources -r https://rubygems.org/
ysudo gem sources -r http://rubygems.org/
. Observe el final/
./
, también debería eliminarse con el final/
.En Windows, deberá usar la
HTTP
fuente para actualizar ygem
luego volver a usarHTTPS
.Editar: Advertencia No estoy seguro de si esto es seguro . ¿Alguien sabe si los paquetes ruby están firmados? La respuesta aceptada parece una mejor solución.
fuente
gem sources -l
a ver sus fuentes antes y después de actualizar el sistema. Si la actualización falla, especifique un número de versión justo después del sistema -. Vea rubygems.org/gems/rubygems-update/versions o pregunte a un compañero de trabajo quégem -v
informes.Para usuarios de Windows (y tal vez 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 usar cifrado de 256 bits). La herramienta de línea de comandos rubygems agrupa la referencia al certificado correcto. Por lo tanto, los rubygems en sí no pueden actualizarse utilizando una versión anterior de rubygems. Rubygems primero debe actualizarse manualmente.
Primero averigua qué rubygems tienes:
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. Running 1.8.x: descarga: https://github.com/rubygems/rubygems/releases/tag/v1.8.30 Running 2.0.x: descarga: https://github.com/rubygems/rubygems/releases/tag/v2 .0.15 Ejecutando 2.2.x: descarga: https://github.com/rubygems/rubygems/releases/tag/v2.2.3
Instalar actualización joya:
Ejecutar actualización de gema:
Comprueba que rubygems se haya actualizado:
Desinstalar la gema de actualización:
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 último certificado, (actualmente AddTrustExternalCARoot-2048.pem) de https://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:
Coloque este archivo en el directorio "rubygems \ ssl_certs" en esta ubicación.
Según el compromiso 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
fuente
Intente utilizar el sitio web de origen para las gemas, es decir, rubygems.org. Use http en lugar de https. Este método no implica ningún trabajo, como la instalación de certificados y todo eso.
Ejemplo
Esto funciona, pero hay una advertencia.
La gema está instalada, pero la documentación no se debe a errores de certificación. Aquí está el error que recibo
fuente
Correr
gem update --system
me funcionófuente
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
Asegúrese de que el reloj de su sistema sea correcto
Este error exacto me ocurrió hoy en una máquina virtual Ubuntu que se ejecuta en VirtualBox. Probé la mayoría de las soluciones que se muestran arriba antes de notar que había reanudado un estado suspendido muy antiguo, y mi reloj estaba apagado por muchos días.
Actualizar el reloj solucionó de inmediato mi problema. Aquí está el comando que usé en mi caso:
servicio sudo ntp stop && sudo ntpdate pool.ntp.org && servicio sudo ntp start
fuente
Simplemente desinstalar y reinstalar openssl con homebrew resolvió este problema por mí.
brew uninstall --force openssl
brew install openssl
fuente
brew uninstall --ignore-dependencies openssl
(que es el equivalente de laforce
bandera anterior)Para usuarios de Fedora.
Actualice el
cert.pem
archivo más nuevo que proporciona cURL: http://curl.haxx.se/ca/cacert.pemfuente
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 violación de seguridad siempre que pueda validar el certificado como confiable.
fuente
En mi caso, los certificados de Ubuntu CA estaban desactualizados. Lo arreglé ejecutando:
fuente
Enfoque / one-liner que se puede automatizar para descargar gemas usando HTTP en lugar de HTTPS:
fuente
El caso particular de RubyGems (la herramienta de línea de comando) es que requiere agrupar dentro de su código los certificados de confianza, lo que permite a RubyGems establecer una conexión con los servidores incluso cuando el sistema operativo base no puede verificar su identidad.
Hasta hace unos meses, este certificado fue proporcionado por una CA, pero el certificado más nuevo es proporcionado por uno diferente.
Debido a esto, las instalaciones existentes de RubyGems tendrían que actualizarse antes del cambio del certificado y dar tiempo suficiente para que el cambio se extienda (y las personas se actualicen)
Cualquiera puede encontrar su solución siguiendo los sencillos pasos que se detallan en el siguiente enlace.
https://gist.github.com/luislavena/f064211759ee0f806c88
fuente
Tratar
Espero que resuelva el problema.
fuente
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)
Descargue el archivo cacert.pem de http://curl.haxx.se/ca/cacert.pem . Guarde este archivo en C: \ RailsInstaller \ cacert.pem.
Ahora haga que Ruby conozca su paquete de autoridad certificadora configurando SSL_CERT_FILE. Para configurar esto en su sesión actual de símbolo del sistema, escriba:
establecer SSL_CERT_FILE = C: \ RailsInstaller \ cacert.pem
fuente
Tuve el mismo problema al intentar instalar gema de pepino. Sin embargo, noté que la gema del paquete ya estaba instalada con ruby 2.0. Creé un Gemfile.rb en la carpeta del proyecto con las gemas requeridas y seguí estos pasos
Todas las gemas requeridas instaladas.
fuente
Para Illumos / Solaris con OpenCSW pkgutil:
Instale CSWcacertificates antes de 'gem install'
Si está utilizando un kit ruby que no es de OpenCSW, su versión ruby puede esperar encontrar el archivo del certificado en otro lugar. En este caso, simplemente hice un enlace simbólico /etc/opt/csw/ssl/cert.pem de OpenCSW al lugar esperado.
Comprueba dónde Ruby espera encontrarlo:
Luego, si hay una discrepancia, vincúlela:
fuente
O puede ser impedido por un firewall como yo. Prueba esto:
sudo gem install --http-proxy http: // localhost: port cocoapods -V
fuente
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 SSL cuando instalé bundler en una máquina de producción, dentro de la red.
Como tenía limitaciones de acceso a la red y no había forma de cambiar la configuración para el acceso SSL, y en base a los mensajes de error, realicé los siguientes pasos para poder finalizar la instalación del paquete (esto puede sonar loco, pero trabajó...).
A través de una máquina con acceso ilimitado a Internet, descargó los siguientes archivos:
Agregué estos archivos en un servidor de intranet, manteniendo la estructura de carpetas de los enlaces anteriores:
spec.4.8.gz e latest_specs.4.8.gz
bundler-1.11.2.gemspec.rz
bundler-1.11.2.gem
Luego agregué mi intranet para acceder a la fuente de gemas:
He ejecutado con éxito el "paquete de instalación de gemas" después de la instalación, todo lo que se necesitó fue eliminar mi intranet de la gema:
Espero que sea útil en cualquier situación similar ...
fuente
Como usuario de Windows 10, seguí la respuesta de Dheerendra , y me funcionó un día. 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
bundler
tenía más de unos pocos meses.fuente
Asegúrese de haber instalado ruby con --disable-binary opción , si no, desinstálelo y vuelva a instalarlo con la opción.
Más información aquí
fuente
La respuesta ya no es válida. Desde que encontré el problema con el viejo rubí de Windows en este momento, publicaré la respuesta.
Cuando quería instalar una gema de soporte activo:
Los siguientes pasos deben copiar solo los certificados de las nuevas ventanas de ruby. Tome el último ruby (o al menos ruby 2.4.0 ) y haga lo siguiente:
Copie los certificados de estos directorios (ajústelos 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
al destino (nuevamente ajuste a lo que necesita):
C:\prg_sdk\rubies\Ruby231-p112-x64\lib\ruby\2.3.0\rubygems\ssl_certs
fuente