letsencrypt external_url configurar certificate ssl-certificate gitlab

external_url - la verificación del certificado del servidor falló CAfile:/etc/ssl/certs/ca-certificates.crt CRLfile: none



gitlab web server (13)

Puedo presionar por clonar el proyecto usando ssh, pero no funciona cuando clono el proyecto con https. muestra el mensaje de error como abajo.

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


Nota: Esto tiene importantes implicaciones de seguridad.

Abre tu terminal y ejecuta el siguiente comando:

export GIT_SSL_NO_VERIFY=1

Funciona para mí y estoy usando el sistema Linux.


Acabo de encontrar el mismo problema con un repositorio git que siempre me funciona. El problema fue que accedí a él a través de un acceso público a WiFi, que redirige a un portal cautivo en la primera conexión (por ejemplo, para mostrar anuncios y estar de acuerdo).


Finalmente, agregue http.sslverify a su .git / config.

[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = https://server/user/project.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [http] sslVerify = false


Instalé Xubuntu en una Raspberry pi 2, encontré el mismo problema con el tiempo, ya que NTP y la sincronización automática del servidor estaban desactivadas (o no estaban instaladas). Obtener NTP

sudo apt-get install ntp

y cambie la "Fecha y hora" de "Manual" a "Mantener sincronizado con los servidores de Internet"


Me equivoqué con mis archivos de CA mientras configuraba el proxy Goagent. No se pueden extraer datos de github y obtener la misma advertencia:

la verificación del certificado del servidor falló CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

use el método de Vonc, obtenga el certificado de github y póngalo en /etc/ssl/certs/ca-certificates.crt, problema resuelto.

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


O simplemente ejecute este comentario para agregar el certificado del servidor a su base de datos:

echo $(echo -n | openssl s_client -showcerts -connect yourserver.com:YourHttpGilabPort 2>/dev/null | sed -ne ''/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'') >> /etc/ssl/certs/ca-certificates.crt

Entonces haz git clon otra vez.


Otra causa de este problema podría ser que su reloj esté apagado. Los certificados son sensibles al tiempo.

Para comprobar la hora actual del sistema:

date -R

Puede considerar la instalación de NTP para sincronizar automáticamente la hora del sistema con servidores de tiempo de Internet confiables del grupo NTP . Por ejemplo, para instalar en Debian / Ubuntu:

apt-get install ntp


Revise el reloj de su sistema,

$ date

Si no es correcto, la verificación del certificado fallará. Para corregir el reloj del sistema,

$ apt-get install ntp

El reloj debería sincronizarse.

Finalmente ingrese nuevamente el comando de clonar.


Si está utilizando un servidor git dentro de una red privada y está utilizando un certificado autofirmado o un certificado sobre una dirección IP; También puede simplemente usar la configuración global de git para deshabilitar las comprobaciones de SSL:

git config --global http.sslverify "false"


Tuvo el mismo problema. Causado por la autoridad de certificación auto emitida. Se solucionó agregando el archivo .pem a / usr / local / share / ca-certificate / y llamando

sudo update-ca-certificates

PS: el archivo pem en la carpeta ./share/ca-certificates DEBE tener la extensión .crt


no es necesario configurar la verificación git ssl para que sea falsa. Se produce cuando el sistema no tiene todos los certificados de autoridad de CA. La mayoría de las personas que tienen certificado SSL genuino faltan el certificado intermedio.

Solo agregando el texto completo del certificado intermedio (cadena completa de CA faltante y certificado intermedio) a

sudo gedit /etc/ssl/certs/ca-certificates.crt

Funciona sin ejecutar la update-ca-certificates .

Lo mismo ocurre con los certificados generados manualmente, solo agregue el texto del certificado de CA.

Al final: Empuje con éxito: Todo está actualizado.


TLDR:

hostname=XXX port=443 trust_cert_file_location=`curl-config --ca` sudo bash -c "echo -n | openssl s_client -showcerts -connect $hostname:$port / 2>/dev/null | sed -ne ''/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'' / >> $trust_cert_file_location"

Respuesta larga

El motivo básico es que su computadora no confía en la autoridad de certificación que firmó el certificado utilizado en el servidor Gitlab . Esto no significa que el certificado sea sospechoso, pero podría ser autofirmado o firmado por una institución / empresa que no esté en la lista de la lista de CA de su SO. Lo que debe hacer para evitar el problema en su computadora es decirle que confíe en ese certificado, si no tiene ningún motivo para sospechar al respecto.

Debe verificar el certificado web utilizado para su servidor gitLab y agregarlo a su </git_installation_folder>/bin/curl-ca-bundle.crt .

Para verificar si al menos el clon funciona sin verificar dicho certificado, puede configurar:

export GIT_SSL_NO_VERIFY=1 #or git config --global http.sslverify false

Pero eso sería solo para pruebas, como se ilustra en " SSL funciona con browser, wget y curl, pero falla con git ", o en esta publicación de blog .

Verifique la configuración de su GitLab, un número 4272 .

Para obtener ese certificado (que necesitaría agregar a su archivo curl-ca-bundle.crt ), escriba a:

echo -n | openssl s_client -showcerts -connect yourserver.com:YourHttpGilabPort / 2>/dev/null | sed -ne ''/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p''

(con '' yourserver.com '' es el nombre de su servidor GitLab)

Para verificar la CA (emisor de la autoridad de certificación), escriba a:

echo -n | openssl s_client -showcerts -connect yourserver.com:YourHttpGilabPort / 2>/dev/null | sed -ne ''/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'' / | openssl x509 -noout -text | grep "CA Issuers" | head -1

Nota: Valeriy Katkov sugiere en los comentarios agregar la opción -servername al comando openssl, de lo contrario, el comando no se muestra para www.github.com en el caso de Valeriy.

openssl s_client -showcerts -servername www.github.com -connect www.github.com:443

Findekano añade en los comentarios :

para identificar la ubicación de curl-ca-bundle.crt , puede usar el comando

curl-config --ca

Además, vea mi respuesta más reciente " error en la verificación del certificado de github: servidor ": es posible que tenga que volver a mostrar todos esos certificados:

sudo apt-get install --reinstall ca-certificates sudo mkdir /usr/local/share/ca-certificates/cacert.org sudo wget -P /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt sudo update-ca-certificates git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt


GIT_CURL_VERBOSE=1 git [clone|fetch]…

Debería decirte dónde está el problema. En mi caso, se debió a que cURL no admite certificados PEM cuando se construyó contra NSS, debido a que ese soporte no es la línea principal en NSS ( #726116 #804215 #402712 and more ).