Git LFS dar x509: certificado firmado por una autoridad desconocida

2 minutos de lectura

Avatar de usuario de EON CTO
CTO de EON

Acabo de configurar un servidor Ubuntu 18.04 LTS con Gitlab siguiendo las instrucciones de https://about.gitlab.com/install/#ubuntu.

Emití un certificado SSL de GoDaddy y confirmé que funciona con el servidor Gitlab.

Luego actualicé gitlab.rb: gitlab_rails[‘lfs_enabled’] = true

He instalado GIT LFS Client desde https://git-lfs.github.com/.

Luego intenté encontrar una solución en línea sobre por qué no hago que LFS funcione. siempre consigo

x509: certificado firmado por una autoridad desconocida

Otros ajustes hechos en gitlab.rb:

gitlab_workhorse[‘env’] = {
‘SSL_CERT_DIR’ => ‘/opt/gitlab/embedded/ssl/certs/’
}
nginx[‘redirect_http_to_https’] = true

No soy un experto en Linux/Unix/git, pero he usado Unix/Linux durante más de 30 años y git durante varios años, no solo configuré git con LFS antes.

Acabo de tener ese mismo problema mientras corría git clone ... para descargar el código fuente de un repositorio privado de Git en BitBucket en una imagen de Docker. Lo resolví deshabilitando la verificación SSL así:

GIT_SSL_NO_VERIFY=1 git clone ...

Fíjate que no hay && entre el argumento Environment y el comando git clone.

También puede configurar esa opción usando git config:

git config http.sslverify false

Para mi caso de uso en la creación de una imagen de Docker, es más fácil configurar Env var.

  • Esto no soluciona el problema. Esto desactiva SSL. Eso no es bueno. SSL está activado por una razón.

    – Juan Rocha

    1 de febrero de 2022 a las 22:55

El problema es que Git LFS encuentra los certificados de forma diferente al resto de Git.

Es posible que necesite ayuda para encontrar el certificado correcto.

Mis usuarios y yo resolvimos esto señalando http.sslCAInfo a la ubicación correcta.

git config http.sslCAInfo ~/.ssh/id_ed25519 donde id_ed25519 es la clave privada de los usuarios para el repositorio problemático, así que cámbielo según corresponda.

  • Este resuelve el problema. Solo puedo decir que es divertido – agregó ayer, ayudando hoy. ¡Parece un encanto!

    – Dmitri

    7 sep 2022 a las 15:52

  • ¿Cómo funciona esto realmente? Claramente, la identidad SSH no es lo mismo que un certificado CA (ni el formato de archivo ni de otra manera). Entonces, ¿cómo decir git usar ese archivo para http.sslCAInfo arreglar algo? Me interesa sobre todo desde el punto de vista técnico…

    – 0xC0000022L

    ayer

En Ubuntu, simplemente actualice su tienda System CA

# move your cert into /usr/local/share/ca-certificates
sudo curl -s 'my-pki.de/my-cert.pem' --output /usr/local/share/ca-certificates/my-cert.crt

# update store
sudo update-ca-certificates

¿Ha sido útil esta solución?