Archivo de la categoría: Open Source

Solucionar error: server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

Fork me git - server certificate verification failed
Fork me git – server certificate verification failed

Este error SSL al clonar repositorio GIT suele aparecer en algunos repositorios. En mi caso particular apareció este error (server certificate verification failed) al clonar el repositorio de ffmpeg descrito en su propia página:

$ git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

Que produce el error:

fatal: unable to access 'https://git.ffmpeg.org/ffmpeg.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

Esto se debe a que GIT esta intentando validar el certificado SSL de dicho repositorio y rechaza el certificado puesto que tiene algún problema (por ejemplo puede estar autofirmado o no ser válido).

Error: server certificate verification failed

Si quieres obtener más información sobre el problema, puedes mostrar más información de depuración con:

GIT_CURL_VERBOSE=1

En mi ejemplo sería:

$ GIT_CURL_VERBOSE=1 git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
Clonar en «ffmpeg»...
* Couldn't find host git.ffmpeg.org in the .netrc file; using defaults
* Trying 79.124.17.100...
* TCP_NODELAY set
* Connected to git.ffmpeg.org (79.124.17.100) port 443 (#0)
* found 168 certificates in /etc/ssl/certs/ca-certificates.crt
* found 684 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_128_GCM_SHA256
* server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
* Curl_http_done: called premature == 1
* Closing connection 0
fatal: unable to access 'https://git.ffmpeg.org/ffmpeg.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

Posibles soluciones

Existe una manera rápida y sucia de solucionar el problema que es ignorar el paso de verificar el certificado (ojo, esto implicaría que realmente confías en el sitio que estas ignorando y que si alguien ha reemplazado su certificado de forma maligna, tu asumirías las consecuencias), para ignorar la verificación en GIT:

$git config --global http.sslverify false

O bien puedes usar la variable de entorno:

$ export GIT_SSL_NO_VERIFY=1

 



Otra posible solución, es obtener el certificado autofirmado (archivo .crt) y añadirlo a la lista de los que tiene tu propio ordenador. Para ello, con el anterior comando hemos visto que el host al que debemos solicitarlo (en mi caso) es git.ffmpeg.org, luego sería el siguiente comando:

$ echo -n | openssl s_client -showcerts -connect git.ffmpeg.org:443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'

Esto devuelve un texto, que el el certificado y que debemos añadir a nuestro listado de certificados, normalmente en la ubicación/etc/ssl/certs/ca-certificates.crt:

$ sudo nano /etc/ssl/certs/ca-certificates.crt 

Posteriormente, si es el correcto, actualizariamos con el comando:

$ sudo update-ca-certificates

Y debería mostrar que se ha añadido uno nuevo. Con ello debería permitir clonar el repositorio que produce el fallo de verificación SSL (server certificate verification failed).

Instalar htop 2.0 desde código fuente

Hace unos pocos días me entere por la cuenta de @nixcraft en twitter que htop 2.0 había sido liberado en el FOSDEM 2016 por Hisham Muhammad su autor original desde 2004.

htop 2.0 vídeo charla multiplataforma

Aparte de que la principal mejora es que es multiplataforma para Linux, FreeBSD, OpenBSD and Mac OS X gracias a las contribuciones que ha tenido en Github. Se han incluido muchas otras mejoras (si tienes disponible ncurses 6) (en CentOs 6.X de base solo se ofrece ncurses 5 ya que fue liberado ncurses 6 en agosto de 2015).

Principales mejoras

htop 2.0 apariencia en ejecución
htop 2.0 apariencia en ejecución

Algunas de las principales mejoras en htop 2.0 son:

  • Soporte de load con gráfica de puntos
  • Mostrar los GB de memoria en lugar de MB
  • Mostrar las variables de entorno de cada proceso presionando ‘e’
  • Código independizado para cada plataforma (más facilidad para futuros desarrollos y plataformas)
  • Enfoque de programación orientada a objetos en el código fuente (OOP).

Instalación desde fuentes

He creado un pequeño script en Github para que puedas instalarlo fácilmente desde mi colección de scripts con el comando:

wget https://raw.githubusercontent.com/shakaran/scripts/master/setup-htop2.sh -O - | bash

O bien con curl:

curl -fsSL https://raw.githubusercontent.com/shakaran/scripts/master/setup-htop2.sh | bash

Instalarlo con el script es…

Solucionar error: Warning: Cannot modify header information – headers already sent by (output started at wp-config.php:1) in wp-includes/pluggable.php

Al actualizar WordPress 4.3 puede que visualices este error en tu wp-admin o dashboard u otras zonas como el wp-login.

Suele pasar a usuarios que actualizan su WordPress y modifican su archivo wp-config.php con algún editor (tipo Filemanager de Cpanel u otros) que añaden al archivo el modo UTF8 BOM (unas cabeceras en el archivo) que no están permitidas y que no se llevan bien con hostings o alojamientos basados en GNU/Linux y ejecutando PHP.

Ten en cuenta, que esta solución que propongo es una de las posibles, ya que el error puede deberse a otras causas, por ello te recomiendo que busques en esta sección específica de wordpress en caso que no te sea útil esta solución. Normalmente, este warning o aviso aparece al intentar establecer las cookies de wordpress, ya que carga el wp-config.php y añade el BOM que se toma como texto enviado e impidiendo establecer las cabeceras de PHP y por tanto las cookies.

En caso de que estes afectado por la modificación del archivo UTF8 con BOM en el wp-config.php, la solución es facil. Unicamente debes quitarle el modo BOM con algun editor de texto avanzado.

Aunque para administradores de sistemas como yo, solemos hacerlo de forma más rapida con un par de comandos.

Primero si quieres buscar otros archivos con UTF8 BOM (puedes excluir archivos PNG, JPG y demás que seran falsos positivos). Puedes utilizar el siguiente comando:

grep -rl $'\xEF\xBB\xBF' ruta/a/tu/wordpress

Si una vez que has confirmado los archivos, puedes ejecutar el siguiente comando para cambiar todos los archivos de una vez y eliminar el modo UTF8 BOM:

find ruta/a/tu/wordpress -type f -exec sed '1s/^\xEF\xBB\xBF//' -i.bak {} \; -exec rm {}.bak \;

¿Aún sigues con problemas y no encuentras quien pueda solucionartelo?

Pues estas de suerte, puedes contratarme como freelancer en Upwork para que le de un vistazo y solucionarlo.