¿Git parece reconocer la propiedad http.sslcainfo de .gitconfig pero la ignora en la ejecución? SEC_E_UNTRUSTED_ROOT


10

todos, tengo una cadena de certificados de trabajo (comprobable con OpenSSL) pero de alguna manera no puedo decirle a Git que cargue estos certificados.

Recibo el mismo error de "autoridad de raíz no confiable" (SEC_E_UNTRUSTED_ROOT) independientemente de si mi configuración de git apunta a un archivo de cadena de certificado existente o falso.

Para más detalles, consulte la captura de pantalla adjunta.ingrese la descripción de la imagen aquí

Configuración que uso .gitconfigpara el archivo falso:

sslCAInfo = C:/tmp/foobar.crt

o, para un archivo real que funciona con OpenSSL:

sslCAInfo = C:/tmp/ca-bundle.crt

Transcripción de la consola:

C:\tmp>openssl version
OpenSSL 0.9.8h 28 May 2008

C:\tmp>git --version
git version 2.12.2.windows.2

C:\tmp>git config --list
http.sslverify=true
http.sslcainfo=C:/tmp/ca-bundle.crt

C:\tmp>dir
24.04.2017 13:45 10.875 ca-bundle.crt

c:\tmp>openssl s_client -state -connect https://mygithost:443 -CAfile .\ca-bundle.crt

Verify return code: 0 (ok)

C:\tmp git clone https://mygithost/bitbucket/scm/my.git
Cloning into ...
fatal: unable to access ... : schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.

C:\tmp> git -c http.sslverify=false clone https://mygithost/bitbucket/scm/my.git
Cloning into ...
Resoliving deltas: 100%, done.

C:\tmp>git config --list
http.sslverify=true
http.sslcainfo=C:/tmp/foobar.crt

C:\tmp\xxx\git pull
fatal: unable to access ... : schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.

Tienes un error tipográfico en tu configuración de git: tml en lugar de tmp
Tensibai

Me parece extraño que git no genere un error con fakepath. Debería verificar otros niveles de configuración (global, usuario y repositorio). Probablemente haya una alternativa en algún lugar
Tensibai

@Tensibai proporcione instrucciones o un enlace a documentos, no estoy seguro de cómo imprimir todo eso. por ejemplo, git config --global --list no funciona.
Peter Muryshkin

Git config --get-all debería hacer para mostrar todas las configuraciones resultantes del sistema, global y local (no puedo verificar que estoy en el teléfono, y eso es solo una suposición, la solución podría ser set SSL_CERT_FILE=C:\tmp\ca-bundle.crtdecirle a openssl dónde encontrar el paquete
Tensibai

C:\git config --get-all-- => error: wrong number of arguments
Peter Muryshkin

Respuestas:


2

Me golpeó esto hoy después de una nueva instalación, así que así es como lo superé:

De tus registros (el énfasis es mío):

fatal: no se puede acceder ...: schannel : next InitializeSecurityContext falló:

git está configurado para usar schannel (implementación nativa de Windows), pero schannel usa el paquete de certificados de Windows y no el paquete cainfo.

Para cambiar a openssl para usar un archivo de paquete personalizado, use esto:

git config --system http.sslbackend openssl

Y ahora git honrará el paquete CA aprobado en http.sslcainfo.

Alternativamente, como mi error fue un problema de cypher suite, puede interesarle los siguientes enlaces:


1

Tuve algo similar hace un año, así que espero recordarlo.

Debe tener toda la cadena de certificados en el archivo crt. Verifique que tenga todos los certificados intermedios entre su certificado de bitbucket y el raíz (incluido).

Puede echar un vistazo al formato correcto para agregarlos en el formato pem (que creo que es su caso con el CRT) aquí .

Comodo firmó mi certificado cuando tuve ese problema, su certificado y el intermedio no estaban en el paquete predeterminado de ca proporcionado por la mayoría de los sistemas.

¡Espero que ayude!

Editar: ahora noté que sucede también con el falso: intente verificar los certificados conocidos predeterminados del sistema (cada sistema tiene tal). En Windows puede ir al complemento mmc de Certificados de Windows .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.