2016-01-22 1 views
1

Je configure une communication SSL bidirectionnelle entre des services sur différents hôtes. Disons que j'ai mon propre CA appelé A. Un est approuvé par tous mes services à travers un jks centralisé. Maintenant, disons que j'ai le certificat B signé par A. Quand les services envoient le certificat au cas où ils enverraient toute la chaîne B - A, ou juste B? Je crois que les deux ont tendance à travailler avec la plupart des implémentations.L'autorité de certification racine approuvée doit-elle faire partie de la chaîne de certificats?

J'ai essayé de trouver des informations canoniques à ce sujet en ligne, mais je n'ai rien trouvé.

Merci pour l'aide

+1

Quel logiciel est utilisé pour valider le certificat? Quelles informations l'entité validatrice est-elle alimentée en dehors du certificat? (un [mcve], peut-être) –

+0

La question est plus sur le standard que le logiciel spécifique. L'entité de validation est alimentée par le certificat et elle sait qu'elle fait confiance à l'autorité de certification. – mck

+0

Si c'est à propos de ce que les normes disent, alors lié: http://security.stackexchange.com/questions/81972/what-part-of-tls-specifies-how-to-verify-a-certificate-chain –

Répondre

3

Comme par tls - Validating an SSL certificate chain according to RFC 5280: Am I understanding this correctly? - Information Security Stack Exchange:

le serveur doit envoyer la chaîne exacte qui doit être utilisé; le serveur est explicitement autorisé à omettre l'autorité de certification racine, mais c'est tout.

référence (RFC 5246 - TLS v1.2, sec. 7.4.2. - Server Certificate):

certificate_list

Ceci est une séquence (chaîne) de certificats. Le certificat de l'expéditeur DOIT venir en premier dans la liste. Chaque certificat suivant DOIT certifier directement celui qui le précède. Puisque la validation du certificat nécessite que les clés racines soient distribuées indépendamment, le certificat auto-signé qui spécifie le certificat racine peut être omis de la chaîne, en supposant que l'extrémité distante doit déjà le posséder pour le valider dans tous les cas.

2

L'idée derrière l'autorité de certification racine de confiance est qu'il est digne de confiance. Vous attendez-vous à ce que le navigateur fasse confiance à tout ce qui est envoyé par le serveur uniquement parce qu'il inclut une autorité de certification racine? Non!

Par conséquent, l'autorité de certification racine doit déjà être sur le client et doit y être approuvée. Il ne devrait pas être inclus dans la chaîne de certificats par le serveur, mais si vous le faites de toute façon, les navigateurs l'ignoreront tout simplement.