6 votos

sec_error_unknown_issuer pero solo con Firefox y IE6

Recientemente he renovado el certificado SSL en mi sitio y aunque en un principio parecía que el certificado se ha instalado correctamente, me sorprendí al descubrir hace horas que la conexión HTTPS no se autentica correctamente en algunos navegadores y versiones.

Actualmente es la autentica ACEPTAR con los siguientes navegadores:

  • Internet Explorer 8
  • Internet Explorer 9
  • Google Chrome 8
  • Opera 11
  • Firefox 3.6.21 (en Windows 2000)

Pero NO se autentica correctamente con:

  • Firefox 3.6.13 (en Windows XP)
  • Firefox 6.01 (en Windows 7)
  • Internet Explorer 6 en Windows, 200)

El certificado tiene el certificado camino de GeoTrust Global CA > RapidSSL CA > secure.mydomain.com.

¿Qué podría explicar este problema? Es este un problema de instalación? Problema con el navegador? Certificado problema?

¿Cómo puedo resolver este problema?

8voto

Cyclops Puntos 349

Yo tenía el mismo problema comprado un básico de certificado SSL (desde Soluciones de la Red), instalado bajo el nginx, y funcionó bien, en tanto Opera e IE - pero no en Firefox 3.6.12. Esto es cómo he resuelto el problema. Tenga en cuenta que tengo root/acceso shell a mi VPS, no sé si hacer (al menos, esto podría apuntar a sus proveedores en la dirección correcta).

El primer paso en la búsqueda de la solución fue usar el Qualys (como por esta otra respuesta). Me dijo que la cadena estaba incompleta.

En segundo lugar, se utiliza OpenSSL para las pruebas de depuración. Asumiendo que usted tiene acceso al intérprete de comandos, usted puede hacer el comando (q o CTRL-C para desconectar):

openssl s_client -connect mysite.com:443

y probablemente verá el mensaje de error "no se puede obtener el local emisor del certificado". Esta es también una forma de probar si funciona, en el shell, sin correr Firefox.

Certificado SSL Cadenas

Algunos navegadores pueden quejarse de un certificado firmado por un conocido certificado de la autoridad, mientras que otros navegadores pueden aceptar el certificado sin problemas. Esto ocurre porque la autoridad emisora ha firmado el certificado de servidor mediante un certificado intermedio que no es presente en la base del certificado de conocidos de confianza certificado las autoridades que se distribuye con un navegador en particular. En este caso de que la autoridad proporciona un paquete de encadenado de los certificadosque debe concatenarse para la firma del certificado de servidor. El servidor certificado debe aparecer antes de que el encadenado de los certificados en el archivo combinado

La configuración de Nginx

En mi caso, yo había conseguido tres archivos de Soluciones de Red - mysite.com.crt, AddTrustExternalCARoot.crty NetworkSolutionsDVServerCA.crt. No había ningún paquete de archivo, pero es posible crear uno de los otros certificados. Después de un poco de ensayo y error, he encontrado lo que necesitaba era:

$ cat mysite.com.crt NetworkSolutionsDVServerCA.crt > mysite.com.chain.crt

El paso final fue para volver a configurar mi servidor nginx con el nuevo archivo:

server {
    listen       443;
    ssl          on;
    ssl_certificate        /etc/ssl/certs/mysite.com.chain.crt;
    ssl_certificate_key    /etc/ssl/private/mysite.com.key;

    server_name  mysite.com;
    # and so on
}

Después de obtener los certificados de derecho en el paquete y reiniciar nginx, openssl informó que no hubo errores, Firefox llegó a la página sin ningún problema, y el Qualys informó la cadena era válido.

Configuración de Apache

Como se está ejecutando Apache, entonces usted (o su proveedor), necesario para configurar SSL con el archivo correcto lugares, uno de los cuales es la falta intermedio de la cadena de archivo:

<VirtualHost 192.168.0.1:443>
    DocumentRoot /var/www/html2
    ServerName www.yourdomain.com
    SSLEngine on
    SSLCertificateFile /path/to/your_domain_name.crt
    SSLCertificateKeyFile /path/to/your_private.key
    SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>

5voto

Terence Johnson Puntos 300

Probar los exámenes en su dominio:

Qualys: https://www.ssllabs.com/ssldb/index.html

DigiCert: http://www.digicert.com/help/

He encontrado ambos muy útil para fijar abajo al azar cuestiones de certificado SSL.

1voto

Damian Puntos 4588

Usar esto para Nginx y StartSSL, que necesita la clase CA demasiado:

CAT ssl.pem ca.pem sub.class1.server.ca.pem > server.pem

o

CAT ssl.pem ca.pem sub.class2.server.ca.pem > server.pem

(según su nivel de clase)

1voto

zakjan Puntos 195

Un certificado puede contener una especial Autoridad de Acceso a la Información de la extensión (RFC 3280) con la URL del certificado del emisor. La mayoría de los navegadores pueden usar la extensión AIA para descargar falta certificado intermedio para completar la cadena de certificados. Pero algunos de los clientes (mayores y los navegadores móviles, OpenSSL) no soportan esta extensión, por lo que informar de tal certificado no es de confianza.

Usted puede resolver el certificado incompleto de la cadena de problema de forma manual mediante la concatenación de todos los certificados del certificado el certificado root de confianza, de manera exclusiva, en este orden), para evitar tales problemas. Nota, el certificado root de confianza no debe estar allí, ya que está incluido en el sistema del almacén de certificados root.

Usted debe ser capaz de recuperar los certificados intermedios desde el emisor y concat juntos por ti mismo. He escrito un script para automatizar el procedimiento, que se repite a lo largo de la extensión AIA para producir la salida de correctamente encadenado certificados. https://github.com/zakjan/cert-chain-resolver

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: