2011-03-20 13 views

Respuesta

25

Configuración cacerts en la sección [web] a la cadena vacía parece ser la misma cosa. De the source:

if cmdoptions.get('insecure', False): 
    ui.setconfig('web', 'cacerts', '!', '--insecure') 

cuales the wiki confirms:

A veces puede ser conveniente desactivar controles de seguridad, por ejemplo cuando se trata de anfitriones con certificados firmados. Esto se puede hacer mediante la desactivación de la configuración de CA certificado en la línea de comandos:

hg empuje --config web.cacerts = https://self-signed-host/repo

Así que poner cacerts=! en la sección [web] de su hgrc mundial (/etc/mercurial/hgrc en linux-likes) lo llevará hasta allí.

+0

Este enfoque realmente funciona, ¡muchas gracias! El único problema es que Hg imprime '" advertencia: certificado de something.com con huella digital 81: ....: fe no verificado (compruebe las huellas del host o web.c ajuste de configuración de acerts) "' varias veces durante 'hg pull' y' hg push'. –

+5

Así que finalmente decidí usar un enfoque con la sección '[hostfingerprints]'. –

+1

Lo que es más positivo con [hostfingerprinst] es que puede colocarlos en el repositorio hgrc en lugar de en el de la raíz, por lo que este cambio no afectará a todos los repositorios de reposo. –

17

Puede usar aliases para lograr eso. Agregue esto a su .hgrc:

[alias] 
push = push --insecure 

El problema es que Usted deberá hacer esto para cada comando que desea utilizar y yo sugerimos que utilice diferentes nombres para sus alias diferente al predeterminado.

Por lo que yo sé, no hay forma de aplicar --insecure para todos los comandos "automáticamente".

+0

Esto funciona incluso cuando Mercurial se llama internamente (sin el parámetro) - de IntelliJ IDEA. –

33

Si su objetivo es eliminar las advertencias de certificados de huellas dactilares durante el impulso/extracción, hay una mejor manera de hacerlo. Use [hostfingerprints] en su archivo .hg/hgrc.

[hostfingerprints] 
server.example.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc 

Esto eliminará las advertencias sin eliminar los controles de seguridad.

Nota: Veo en sus comentarios a otra respuesta que ya ha encontrado esta solución. Estoy publicando esto de todos modos en caso de que alguien más tenga el mismo problema.

+1

Gracias por publicar esto. Es exactamente lo que necesitaba. – Cypher

+2

Hay una buena pregunta acerca de cómo obtener las huellas digitales de servidor utilizando bash: http://stackoverflow.com/a/5165073/1760643 Aquí el comando: 'openssl s_client -connect : /dev/null | openssl x509 -fingerprint -noout -in/dev/stdin' – d9k

+1

La mía tenía que ir en ~/.hgrc – jeremyjjbrown

Cuestiones relacionadas