SSL / TLS: Cómo solucionar “Problemas de la cadena: contiene el ancla”

16

Acabo de realizar una prueba rápida en ssllabs.com: obtuve A +, lo cual me alegra.

Sin embargo, hay una cosa que no sé cómo "arreglar": Mi sitio admite el grapado OCSP y ssllabs me sigue diciendo: Problemas con la cadena: contiene el ancla. Sé que esto es solo una "advertencia" en el sentido de que ralentiza un poco la conexión.

nginx config:

..
ssl_certificate             public.crt;
ssl_certificate_key         private.key;
ssl_stapling                on;
ssl_stapling_verify         on;
ssl_trusted_certificate     my-chain.pem;
..

Donde:
- public.crt es el certificado público que obtuve de StartSSL
- private.key la clave privada del certificado
- my-chain.pem (ssllabs llama a esto: "Certificados adicionales (si se suministran)") consisten en:

1.) StartCom Class 1 Primary Intermediate Server CA  
2.) StartCom Certification Authority

Encontré un sitio que también usa certificados StartCom (StartSSL), admite el grapado OCSP, pero no tiene el problema descrito anteriormente.

"Certificados adicionales" de este sitio:

1.) StartCom Class 1 Primary Intermediate Server CA

He intentado lo mismo: solo puse "StartCom Class 1 Primary Intermediate Server CA" en my-chain.pem.
Sin embargo, entonces ssllabs dice: Grapado OCSP: No Así que esto parece romper completamente el grapado OCSP.

¿Alguna idea?

EDITAR:

¡Finalmente arreglado!

ssl_certificate = Site certificate + StartCom Class 1 Primary Intermediate Server CA  
ssl_trusted_certificate = StartCom Class 1 Primary Intermediate Server CA + StartCom Certification Authority
    
pregunta Ben Richard 19.01.2015 - 16:07
fuente

2 respuestas

7

Según la documentación de nginx el parámetro ssl_trusted_certificate contiene certificados de CA confiables utilizados para verificar los certificados de cliente y las respuestas de OCSP si ssl_stapling está habilitado y la lista de estos certificados no se enviará a los clientes .

Por lo tanto, creo que lo que ssllabs llama "Certificados adicionales (si se suministran)" son los certificados en el archivo ssl_certificate que no son el certificado del servidor.

Para mí:

public.crt debería contener estos 2 certificados:

1) your server certificate
2) StartCom Class 1 Primary Intermediate Server CA 

my-chain.pem debería contener estos 2 certificados:

1) StartCom Class 1 Primary Intermediate Server CA // required to validate the server certificate OCSP response 
2) StartCom Certification Authority  // required to validate the intermediate CA certificate OCSP response 
    
respondido por el Jcs 19.01.2015 - 18:14
fuente
2

En este momento, tiene el certificado de su sitio al que hace referencia ssl_certificate y un archivo que contiene tanto el certificado intermedio como el certificado de CA al que se hace referencia por ssl_trusted_certificate

En su lugar, lo que debe hacer es tener un archivo que contenga el certificado de su sitio y el certificado intermedio referenciado por ssl_certificate y SOLAMENTE el certificado de CA referenciado por ssl_trusted_certificate

es decir:

public.crt debe contener:

1) your site's cert, issued by StartCom
2) StartCom Class 1 Primary Intermediate Server CA 

y my-chain.pem deben contener:

1) StartCom Certification Authority

Sí, es el opuesto de cómo Apache hace las cosas. Pero nginx! = Apache.

    
respondido por el Joe Sniderman 19.01.2015 - 16:40
fuente

Lea otras preguntas en las etiquetas