git no puede encontrar el certificate en el llavero después de actualizar a macOS Sierra

Después de actualizar a MacOS 10.12 Sierra, no puedo sincronizar con mi server SSL git encriptado. El certificate sigue funcionando bien mientras se accede al server a través de Safari.

Recibo este post cuando bash presionar al server:

fatal: unable to access 'https://....': SSL: Can't find the certificate "...." and its private key in the Keychain. 

El certificate está allí en el llavero, y el nombre es correcto (funcionó antes de la actualización), pero de alguna manera no puedo acceder a él.

Mi file ~ / .gitconfig todavía consiste en esto:

 [http "https://...."] sslCert = .... [cnetworkingential] helper = osxkeychain 

¿Alguien más se ha topado con este problema hasta ahora?

Parece que la aplicación de ayuda git-cnetworkingential-osxkeychain está rota en macOS sierra y no recuperará más un certificate de usuario que se devuelve con identidades de búsqueda de security

La única solución que encontré es

  • exportar el certificate y la key de keychain a my_certificate.p12
  • edite .git / config para que la count afectada lo use

     [http] sslCert = /Users/foo/certificates/my_certificate.p12 sslcertpasswordprotected = true 

Nota: Necesitará una contraseña en la P12 y tendrá que ingresar la contraseña para la p12 cada vez que haga un command git.

PD: RADAR: // 28461462

Si quieres usar un crt y un file de keys

 [http] sslVerify = false sslCert = my.crt sslKey = my.key 

necesitas instalar curl y git con soporte para openssl

 brew install openssl brew install curl --with-openssl brew install git --with-brewed-openssl --with-brewed-curl 

Eso funcionó para mí como era esperado

Simple ssh-add me ayudó con esto;)

 ssh-add ~/.ssh/id_rsa 

Primero debes desinstalar

 brew uninstall openssl brew uninstall curl brew uninstall git 

después de instalar como @trollr mencionado

 brew install openssl brew install curl --with-openssl brew install git --with-brewed-openssl --with-brewed-curl 

, también debe asegurarse de que la versión de git correcta (hay MAAAAAANY disponible, consulte

 find / -name git 

)

Homebrew te dice dónde pone la nueva versión elaborada de git, por ejemplo

 /usr/local/Cellar/git/2.10.2/bin/git 

revisa tu versión con la cual git

o simplemente llame a la ruta absoluta para asegurarse de usar la versión correcta, como

 /usr/local/Cellar/git/2.10.2/bin/git clone ....... 

Esto es lo que funcionó para mí

 git -c http.sslCert=/Users/user/Documents/gittest/cert.p12 -c http.sslcertpasswordprotected=true clone https://gitlab.domain.com/user/repository.git 

puede agregar más debugging verbosa agregando

 GIT_CURL_VERBOSE=1 GIT_TRACE=2 GIT_TRACE_PACKET=2 

frente al command.

Los certificates están en el llavero y están marcados de confianza. También el certificate de CA está presente.

Se solucionó el mismo problema con el post de error "No se puede encontrar el certificate …" después de cambiar el nombre del certificate por una cadena que no contenía más caracteres que las letras latinas. Es decir, el cambio de nombre de "my_cert.p12" a "mysert.p12" realmente ha ayudado a eliminar este error.