web-dev-qa-db-fra.com

SSL / TLS: Comment résoudre les "problèmes de chaîne: contient une ancre"

Je viens de faire un test rapide sur ssllabs.com: j'ai obtenu A +, ce dont je suis content.

Cependant, il y a une chose que je ne sais pas comment "corriger": mon site prend en charge l'agrafage OCSP et ssllabs ne cesse de me dire: problèmes de chaîne: contient une ancre. Je sais que ce n'est qu'un "avertissement" dans le sens où cela ralentit un peu la connexion.

configuration nginx:

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

Où:
- public.crt est le certificat public que j'ai obtenu de StartSSL
- private.key la clé privée du certificat
- my-chain.pem (ssllabs appelle ceci: "Certificats supplémentaires (si fournis)") se composent de:

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

J'ai trouvé un site qui utilise également des certificats StartCom (StartSSL), prend en charge l'agrafage OCSP, mais n'a pas le problème décrit ci-dessus.

"Certificats supplémentaires" de ce site:

1.) StartCom Class 1 Primary Intermediate Server CA

J'ai essayé la même chose: ne mettez "CA de serveur intermédiaire principal de classe 1 de StartCom" qu'à my-chain.pem.
Cependant alors ssllabs dit: Agrafage OCSP: Non Donc cela semble casser complètement l'agrafage OCSP.

Une idée?

ÉDITER:

Enfin réparé!

ssl_certificate = Site certificate + StartCom Class 1 Primary Intermediate Server CA  
ssl_trusted_certificate = StartCom Class 1 Primary Intermediate Server CA + StartCom Certification Authority
18
Ben Richard

Selon documentation nginx le ssl_trusted_certificate le paramètre contient des certificats d'autorité de certification approuvés utilisés pour vérifier les certificats clients et les réponses OCSP si ssl_stapling est activé et la liste des ces certificats ne seront pas envoyés aux clients .

Par conséquent, je pense que ce que ssllabs appelle "certificats supplémentaires (si fournis)" sont les certificats dans le ssl_certificate fichier qui n'est pas le certificat du serveur.

Pour moi:

public.crt devrait contenir ces 2 certificats:

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

my-chain.pem devrait contenir ces 2 certificats:

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 
10
Jcs

À l'heure actuelle, le certificat de votre site est référencé par ssl_certificate et un fichier contenant à la fois le certificat intermédiaire et le certificat CA référencé par ssl_trusted_certificate

Au lieu de cela, vous devez avoir un fichier contenant à la fois le certificat de votre site et le certificat intermédiaire référencé par ssl_certificate et UNIQUEMENT le certificat CA référencé par ssl_trusted_certificate

c'est à dire:

public.crt Devrait contenir:

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

et my-chain.pem Devrait contenir:

1) StartCom Certification Authority

Oui, c'est l'opposé de la façon dont Apache fait les choses. Mais nginx! = Apache.

2
Joe Sniderman