Versión corta:
Firefox está utilizando su propia base de datos de CA que incluye el certificado intermedio necesario de Startcom; OpenSSL usa / etc / ssl en lugar de eso, no tiene ese certificado intermedio. Pero debe solucionar esto en el lado del servidor, no en el lado del cliente.
Versión larga:
La validación del certificado SSL requiere que cada certificado en la cadena sea validado. La cadena comienza en la raíz, finaliza en el certificado del nodo y puede incluir cero o más certificados intermedios.
El software cliente debe tener una lista de raíces confiables. Una raíz está firmada por sí misma y es confiable en virtud del proveedor de software que incluye ese certificado en su almacén de raíces de confianza. En el caso de Firefox, eso es (creo) cert8.db. En el caso de OpenSSL, utiliza la jerarquía / etc / ssl.
El software cliente también puede incluir certificados intermedios en su tienda, también. Sin embargo, no es necesario . Parece que Firefox lo ha hecho para Startcom, pero el árbol de configuración / etc / ssl de Ubuntu no.
Por esta razón, se recomienda que los servidores que utilizan certificados de nodo firmados con un certificado intermedio incluyan todos los certificados intermedios al enviar su certificado a cualquier cliente que se conecte.
Para responder directamente a su pregunta, colocar el intermedio en / etc / ssl solucionará el problema, para usted. No para nadie más navegando por su sitio. Para corregirlo correctamente, debe agregar el certificado intermedio a la cadena que el servidor distribuye. Por ejemplo, con Apache, vea la directiva SSLCertificateChainFile - DigiCert tiene un buen tutorial, y StartCom también tiene instrucciones.
@DanFromGermany pregunta, en los comentarios, si puedo dar una referencia para:
mejores prácticas para servidores que utilizan certificados de nodo firmados con un
certificado intermedio para incluir todos los certificados intermedios
De hecho, llamar a eso "mejores prácticas" no es estrictamente cierto, es un requisito. Según RFC 5246 (TLS 1.2) :
[La lista de certificados] es una secuencia (cadena) de certificados. los
El certificado del remitente DEBE aparecer primero en la lista. Cada siguiente
El certificado DEBE certificar directamente el que lo precede. Porque
la validación de certificados requiere que las claves raíz sean distribuidas
independientemente, el certificado autofirmado que especifica la raíz
La autoridad de certificación PUEDE ser omitida de la cadena, bajo el
supuesto de que el extremo remoto ya debe poseerlo para poder
Valídalo en cualquier caso.
Por inferencia: cada certificado en la cadena debe certificar directamente el que lo precede, y solo la autoridad de certificado raíz es opcional ("PUEDE omitirse"), luego se requieren todos los certificados intermedios.
Por lo tanto, no es estrictamente cierto decir que incluir todos los productos intermedios son las mejores prácticas; sería más justo decir que no incluir todos los productos intermedios son las peores prácticas, pero sucede, porque las personas son perezosas y porque Funciona lo suficiente del tiempo.