2011-11-14 22 views
6

Me gustaría usar un repositorio git que sea accesible mediante https, el servidor Https tiene un certificado autofirmado. Siempre sale un error al intentar clonar el repositorio con Eclipse + egit:egit con certificado autofirmado, https

https://host/path: no se puede abrir git-carga-pack sun.security.validator.ValidatorException: Edificio ruta PKIX fallado: sun.security. provider.certpath.SunCertPathBuilderException: incapaz de encontrar ruta de certificación válida al destino solicitado

¿es posible evitar este problema? Usé el comando export GIT_SSL_NO_VERIFY=1 para omitir la verificación de ssl con el cliente de la consola. Este truco no funciona con eclipse.

Gracias,

Hubi

Respuesta

11

Puede también acaba de establecer EGIT hacer caso omiso de comprobación del servidor. En Eclipse ve a Ventana -> Preferencias.

A partir de ahí ir a Equipo -> Git -> Configuración

Haga clic en "Nueva entrada"

Clave: http.sslVerify Valor: falsa

Haga clic en "Aceptar"

clic "OK"

Para un enfoque más detallado de esto echa un vistazo a la entrada de mi blog aquí: http://www.pur-logic.com/2012/04/21/egit-self-signed-certificate/

+0

¿Es este el mismo problema si se usa una dirección IP en lugar de un nombre de host? – Chris

+2

Como se indica en numerosas respuestas relacionadas con el tema "certificados autofirmados y git" utilizando 'http.sslVerify: false' es una ** terrible práctica de seguridad PoV ** y debe ser un último recurso absoluto, especialmente que hay otros opciones. Esta respuesta resuelve el problema y se abre para otros, que normalmente se considera mucho más grave. Pero bueno, los hackers también deben comer, ¿no? :) El problema de raíz aquí es que el java utilizado por egit/eclipse no confía en el certificado autofirmado. Y la solución es simplemente inscribirlo en cacert. – shturec

+0

+1 @shturec! No está deshabilitando la verificación de SSL para un sitio, sino TODOS los sitios cuando hace esto. Es una solución terrible y muy insegura. –

5

Se tienen que importar ese certificado en el almacén de claves (ya sea los cacerts por defecto en el directorio de JDK o especificar uno con el parámetro -Djavax.net.ssl.trustStore) .

+0

A diferencia de la respuesta seleccionada por el autor éste no vulnerabilidades de seguridad abierta y debe ser la preferida ya que es una solución para el problema exacto aquí: el java utilizado por egit no reconoce el certificado como confiable. – shturec

0

El FAQ of CAcert proporciona la línea de comandos para la herramienta de claves:

keytool -keystore $/PATH/TO/CACERTS/KEYSTORE -storepass changeit -import -trustcacerts -v -alias cacertclass1 -file root.crt 
  • el tiempo que tienen para omitir -trustcacerts para importar un certificado normal de .
  • -alias también podría ser innecesario
0

Tuve algunos problemas con esto también, pero con una historia diferente. El nombre de host para el repositorio de Git no coincidía con el nombre de host del certificado. La solución fue cambiar el certificado para que coincida con el nombre de host.

+0

¿Puedes explicarme cómo lo hiciste? Creo que este es también mi problema –

Cuestiones relacionadas