Desde esta mañana, mi certificado no es de confianza ya en Android y, a continuación, mi aplicación no se puede conectar más:

 Catch exception while startHandshake: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
 return an invalid session with invalid cipher suite of SSL_NULL_WITH_NULL_NULL
 javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
    at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:137)
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
    at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:591)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:807)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:781)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:770)

Si busco en Google Chrome (en la PC) no hay ningún problema y el certificado es de confianza pero si pruebo en el navegador Chrome en Android me dice que el certificado no es de confianza. ¿Qué puedo hacer?

  • Usted se está comunicando con el servidor seguro, es decir, (Https)?
  • sí, de hecho, acabo de probar el enlace, podrás ver el certificado
InformationsquelleAutor Alexis | 2012-07-05

14 Comentarios

  1. 91

    Usted puede ser que falte un certificado intermedio en su cert archivo. Si usted ya ha visitado otro sitio web que tiene el mismo certificado de vendedor, el certificado intermedio es recordado en su navegador. Esto no puede – o mejor aún – no será el caso con cada visitante a su sitio web. Para resolver falta un certificado intermedio en la conexión SSL, usted tendrá que agregar el certificado intermedio de su propio archivo de certificado.

    GoDaddy tiene algo de información sobre los certificados intermedios (pero la mejor fuente es siempre el proveedor del certificado):
    http://support.godaddy.com/help/article/868/what-is-an-intermediate-certificate

    Una vez tuve este problema de un intermedio de cert (con Commodo demasiado) y tuvo que combinar mi propio cert archivo con el intermedio de la CA para el trabajo. Una vez hecho no se produjo ningún error más.

    Instrucciones de instalación al servidor web por Godaddy: http://support.godaddy.com/help/article/5346/installing-an-ssl-server-instructions?locale=en

    Y aquí se muestra una lista de los más comunes guías de instalación por Commodo sí mismos:
    https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/1145/0/how-do-i-make-my-own-bundle-file-from-crt-files

    Dependiendo de qué servidor web que está utilizando, usted necesitará especificar todos los certificados (certificado de dominio, intermedio y raíz) o combinarlos en uno solo (por ejemplo, para Nginx) en el orden:

    1. certificado de dominio
    2. certificado intermedio
    3. certificado raíz

    Una manera fácil de hacer esto en un terminal SSH está escribiendo:

    cat domainfile intermediatefile rootfile > targetfile

    Certificado de prueba de la herramienta

    Si encuentro más problemas o no está seguro de si el certificado es correcto, por favor, intente una herramienta en línea para comprobar su certificado SSL. Por ejemplo: networking4all.com/en/ssl+certificados/quickscan

    SNI soporte para android 2.2 y menor

    Por favor nota android 2.2 (y probablemente más) no soportan el SNI, lo que permite que varios certificados SSL para diferentes nombres de host para trabajar sin problemas en una sola dirección IP. Gracias a @technyquist para proporcionar esa información. Por favor, revise de este MODO la pregunta acerca de la SNI para obtener más información sobre este tema.

    • +1, esto funcionó para mi problema con la 2.3.X dispositivos, ya que parecen tener un problema con el fin de encadenado de verificación (soy bastante novato cuando se trata de cert) y por tener este nuevo paquete con el orden correcto (a través de la combinación de @Luceos sugerido) trabajó como un encanto. Gracias
    • Que networking4all de control de sitio de enlace fue un salvavidas, gracias!
    • Eres bienvenido, también la usamos en una base regular. Sobre todo porque se valida más que un certificado intermedio. Feliz de que pude ser de ayuda.
    • el enlace para comodo está muerto
    • gracias actualizada la respuesta
    • También hay que tener en cuenta que Android 2.2 no admite SNI, y esto puede conducir a certificado apretón de manos fracaso (el certificado incorrecto podría ser devueltos).
    • Gracias @TechNyquist SNI no es compatible a partir de 2.2 y a continuación, añadió que la información para la respuesta.
    • Su Paquete de sugerencia de trabajar con Apache o nginx como proxy inverso?
    • Depende de la instalación. El proxy o el servidor final servirá el certificado y debe tener configurado correctamente. @felipealvarez
    • Aquí están arriba-a-fecha de instrucciones para Comodo + nginx gist.github.com/bradmontgomery/6487319
    • Gracias por la explicación. Tengo un certificado Thawte y yo tenía que entrar en su página web, haga clic en «Ver Información de la Orden». El correo electrónico enviado contiene un enlace donde el certificado intermedio puede ser descargado en «Certificados Adicionales».
    • Esto funcionó para mi OpenMediaVault NAS y mi teléfono ejecución de Malvavisco. Editado el certificado en el servidor, al que se anexa el intermedio certs, guardado, y reinicia la interfaz web, y Chrome en mi teléfono pasó de «emisor no es de confianza» a ser gordo y feliz con la cert. Gracias!
    • Nuevo enlace a la página checker es networking4all.com/en/ssl+certificados/quickscan.
    • gracias, actualizado :+1:

  2. 19

    Usted tiene que crear un crt paquete, a continuación, va a estar bien. Usted va a recibir tres crt archivos. El uso de todos ellos! Si sólo se utiliza el dominio.crt entonces no habrá advertencia en android, pero no en el PC.

    Estoy en nginx. Abrí domain_name.crt y luego abrió positivesslca2.crt, seleccionar todo y copiar a la final de domain_name.crt. A continuación, abra AddTrustExternalCARoot.crt, copia al final de domain_name.crt de nuevo. A continuación, instale el domain_name.crt

    buenas obras.

    • Explicación más fácil y funcionó bien para mí’
    • gato PositiveSSLCA2.crt >> domain_name.crt trabajó para mí.
    • Esto parece la solución que estoy buscando, pero todavía no funciona para mí. Yo también estoy en nginx con un certificado de godaddy. godaddy tiene 3 certs: dominio.crt, intermedio.crt, y el paquete.crt. Sabes cual es el orden correcto de acuerdo a su respuesta? es decir, de dominio > intermedio > paquete de dominio o > paquete > intermedio? por alguna razón ni me funciona.
    • Al parecer paquete.crt es el [intermedios.crt + root.crt] concatena así que parece ser el orden correcto. Pero todavía no puedo conseguir que funcione. Alguna idea? Gracias.
    • Usted no necesita root, que ya está incluido en el sistema operativo. Sólo falta que el intermedio de la cadena. El orden debe ser el tuyo + intermedio.
  3. 8

    Añadir esta aquí, ya que podría ayudar a alguien. Yo estaba teniendo problemas con Android que muestra la ventana emergente y error de certificado no válido.

    Tenemos un Comodo certificado de Validación Extendida y hemos recibido el archivo zip que contenía 4 archivos:

    • AddTrustExternalCARoot.crt
    • COMODORSAAddTrustCA.crt
    • COMODORSAExtendedValidationSecureserverca.crt
    • www_mydomain_com.crt

    Me concatenado de ellos juntos todo en una línea así:

    cat www_mydomain_com.crt COMODORSAExtendedValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt >www.mydomain.com.ev-ssl-bundle.crt

    Luego he utilizado ese archivo de paquete como mi ssl_certificate_key en nginx. Eso es todo, ahora ya funciona.

    Inspirado por esta esencia: https://gist.github.com/ipedrazas/6d6c31144636d586dcc3

    • He intentado todos los otros pasos sugeridos. Esto funcionó para mí. Gracias!
    • Buen trabajo, ha sido buscar en google como un loco y esta solucionado.
  4. 1

    Con el Comodo PositiveSSL hemos recibido 4 archivos.

    • AddTrustExternalCARoot.crt
    • COMODORSAAddTrustCA.crt
    • COMODORSADomainValidationSecureServerca.crt
    • our_domain.crt

    Cuando seguimos las instrucciones en el sitio comodo, podríamos obtener un error que nuestro certificado faltaba un archivo del certificado.

    Básicamente, la sintaxis es

    cat our_domain.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt  AddTrustExternalCARoot.crt > domain-ssl_bundle.crt
  5. 1

    Recientemente he ren en este tema con Commodo cert he comprado en ssls.com y he tenido 3 archivos:

    nombre de dominio.ca-bundle de nombre de dominio.crt y nombre de dominio.p7b

    He tenido que configurar en Nginx y este es el comando que me encontré:

    cat domain-name.ca-bundle domain-name.crt > commodo-ssl-bundle.crt

    Luego utiliza commodo-ssl-bundle.crt dentro del archivo de configuración de Nginx y funciona como un encanto.

    • funcionó 🙂 …
  6. 1

    Tuve el mismo problema y mi problema fue que el dispositivo no tenga el derecho de fecha y hora. Una vez que me fijo de que el certificado es de confianza.

  7. 1

    Tuve el mismo error porque yo no emitió una Vamos a Cifrar cert para la www.my-domain.com, sólo para my-domain.com

    Emisión también para el www. y configurar el vhost para cargar los certificados para www.my-domain.com antes de redireccionar a https://my-domain.com hizo el truco.

  8. 0

    He encontrado con este mismo problema con Apache 2.2 cuando yo estaba tratando de utilizar múltiples SSLCertificateChainFile directivas para cada intermedio cert, en cambio yo necesarios para concatenar todos los tres en un solo archivo. Viniendo de GoDaddy donde se había hecho esto por mí como un «paquete», este paso adicional fue nuevo para mí, pero una re-lectura de la documentación de Apache hecho esta aparente.

    La pena señalar, que la presente directiva es en desuso como de Apache 2.4.8 desde ahora usted puede concatenar todos los intermediarios con el real cert.

  9. 0

    Espero no sea demasiado tarde, esta solución aquí trabajó para mí, yo estoy usando SSL de COMODO, las soluciones parecen válida con el tiempo, mi web lifetanstic.co.ke

    En lugar de contactar Comodo Apoyo y obtener un CA paquete de archivo puede hacer lo siguiente:

    Al momento de obtener su nuevo certificado SSL de Comodo (por correo electrónico) tienen un archivo zip adjunto.
    Es necesario descomprimir el archivo zip y abrir los siguientes archivos en un editor de texto como el bloc de notas:

    AddTrustExternalCARoot.crt
    COMODORSAAddTrustCA.crt
    COMODORSADomainValidationSecureServerCA.crt

    A continuación, copia el texto de cada uno «.crt» archivo y pegar los textos de arriba simpatia en el «Certificado de la Autoridad de Paquete (opcional)» campo.

    Después de que acaba de agregar el certificado SSL como de costumbre en el «Certificado» de campo y haga clic en «Autofil por el Certificado del» botón y pulse «Instalar».

  10. 0

    Con Godaddy certs lo más probable que tenga un domain.key, gd_bundle_something.crt y (cadena alfanumérica aleatoria) 4923hg4k23jh4.crt

    Usted necesitará: cat gd_bundle_something.crt >> 4923hg4k23jh4.crt

    Y, a continuación, en nginx, que va a utilizar

    ssl                  on;
    ssl_certificate      /etc/ssl/certs/4923hg4k23jh4.crt;
    ssl_certificate_key  /etc/ssl/certs/domain.key;
  11. 0

    Yo tenía el mismo problema. Otra forma de generar la correcta .crt archivo es este:

    A veces se obtiene una .PEM archivo con toda una cadena de certificados en el interior. El archivo puede quedar como esta….

    -----BEGIN RSA PRIVATE KEY-----
    blablablabase64private...
    -----END RSA PRIVATE KEY-----
    -----BEGIN CERTIFICATE-----
    blablablabase64CRT1...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    blablablabase64CRT2...
    -----END CERTIFICATE-----
    ...

    Si se quita toda la private key sección, usted tendrá una validez encadenados .crt

  12. 0

    Asegúrese de que usted también puede usar su intermedio (crt.archivo de crt con un paquete.. algunos proveedores también lo llaman paquete o certificado de ca).
    a continuación, en su ssl.conf,

    SSLCertificateFile </path/for/actual/certificate>
    
    SSLCACertificateFile </path/for/actual/intermediate_certificate>

    a continuación, reinicie el servidor web :ex apache para usar :

    sudo service httpd restart
  13. -1

    podría ser que te falta el certificado en el dispositivo.

    intente buscar en esta respuesta: Cómo instalar el certificado de CA de confianza en el dispositivo Android? a ver cómo instalar la CA en su propio dispositivo.

    • Mi certificado es emitido por PositiveSSL CA / Comodo CA Limited y en mi credenciales de confianza en mi teléfono puedo ver 3 Comodo CA Limited (AAA Autoridad de Certificación, COMODO, Autoridad de Certificación y COMODO ECC Autoridad de Certificación)

Dejar respuesta

Please enter your comment!
Please enter your name here