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.
Configuración que uso .gitconfig
para 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.
set SSL_CERT_FILE=C:\tmp\ca-bundle.crt
decirle a openssl dónde encontrar el paqueteC:\git config --get-all-- => error: wrong number of arguments
Respuestas:
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):
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:
fuente
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 .
fuente