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