2010-07-19 18 views
11

que estoy usando este comando en mi mono VMproblemas Mono con cert y mozroots

sudo mozroots --import --sync 

Parece estar recibiendo el certificado de this site.

Luego trato de conectarme a mi sitio ssl y obtengo la excepción de que el certificado no es válido. Utilizo Firefox y veo que el certificado fue emitido en 2010. Miré ese archivo y vi la última vez que se actualizó fue 2009-05-21 12:50

Al usar Firefox en la misma máquina puedo navegar al mismo url estoy tratando de conectar y no tengo problemas de SSL. (sin alerta ni pidiéndome que lo agregue a una excepción).

Estoy confundido aquí. ¿Cómo actualizo mono para usar los últimos certs?

-edit- Comprobé quién firmó el certificado del sitio que quiero visitar y su nombre está en certdata. Me pregunto por qué mono dice que el certificado no es válido.


he intentado escribir esto y llegué a sí a la 3 cert que me pidió que importar

certmgr -ssl https://www.site.com/users/login --machine 

me encontré con mi solicitud de nuevo y consiguió este error. Buscar en Google el código de error 0xffffffff80092012 i found this.

Parece un error solucionado que no se ha aplicado a 2.6.4. O podría estar haciendo mal. Establezco el ServerCertificateValidationCallback en mi propia cuenta y devuelvo true para esta aplicación como una solución para mono.

System.NET.WebException: Error al obtener secuencia de respuesta (Comentario: La autentificación o descifrado ha fallado .): SendFailure ---> System.IO.IOException: La autentificación o descifrado tiene ha fallado. ---> Mono.Security.Protocol.Tls.TlsException: Certificado no válido recibido del servidor . Código de error: Instalación 0xffffffff80092012

Respuesta

2
  1. Un defecto de Mono no confía en nadie!
  2. mozroots descargará e importará certificados raíz de confianza de Mozilla's LXR.
  3. Leer el Mono Security FAQ

EDIT:

  • probar la última versión de los paquetes de Mono here
  • Si eso no funciona o bien tratar el tronco versión SVN here
  • Desde el Bug 606002, Gonzalo Paniagua Javier 'sugirió: "El camino a seguir es agregar su ServerCertificateValidationCallback a ServicePointManager e ignorar los errores con th es código ".
  • Tengo poca experiencia en esta área, por lo que sugiero que se contacte con él para obtener más ayuda, tal vez él puede ayudar. El correo electrónico es gonzalo @ gonzalo.nombre (his blog)
+0

Editar mi pregunta después de probar tu solución. –

3

Seguimiento sobre error 606002 - aquí está el código para ignorar dicho código de error. Llámalo una vez en tu inicialización

  ServicePointManager.ServerCertificateValidationCallback += delegate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors sslPolicyErrors) { 
      if (sslPolicyErrors == SslPolicyErrors.RemoteCertificateChainErrors) { 
       foreach (X509ChainStatus status in chain.ChainStatus) { 
        if (status.Status != X509ChainStatusFlags.RevocationStatusUnknown) { 
         return false; 
        } 
       } 
       return true; 
      } 

      return false; 
     };