Fazendo uma conexão SSL com apenas a CA raiz no armazenamento confiável

0

Eu tenho um aplicativo cliente / servidor SSL.

Meu cliente SSL possui apenas uma autoridade de certificação raiz (vamos chamá-lo rootCA1) configurado em seu armazenamento confiável.
No entanto, meu servidor ssl produz um certificado que é assinado por uma CA intermediária (permite chamá-lo de interCA1). A CA intermediária tem seu certificado (vamos chamá-lo deviceCert) assinado por rootCA1 (no qual o cliente confia). O servidor SSL produz os certificados de interCA1 e rootCA1 junto com deviceCert durante o ssl hello.

Agora o openssl rejeita essa conexão no lado do cliente.

Openssl deve ser capaz de estabelecer a cadeia de confiança, olhando para deviceCert--signed by-->interCA1--signed by-->rootCA1

Como ele confia no rootCA1 e a cadeia de confiança pode ser vista em meu entendimento.

Então, por que isso falha? por que é necessário ter CA's intermediárias cofiguradas no truststore do cliente?

    
por Keshava 30.01.2018 / 16:19

1 resposta

-2

Acho que o motivo para ter todos os certificados intermediários da CA configurados é o seguinte.

Vamos pelo argumento supor que é necessário apenas ter o certificado da CA raiz na cadeia de confiança.
O cliente pode confiar em todos os certificados assinados pela CA raiz, bem como qualquer outra autoridade intermediária cujo certificado é compartilhado pela CA raiz (ou assinado por qualquer outra autoridade de certificação intermediária que tenha um certificado assinado pela autoridade de certificação raiz).

Agora, se a chave privada da CA intermediária for comprometida por algum motivo, isso seria um problema.

Portanto, ao configurar as CAs intermediárias no armazenamento confiável, o cliente declara que ele confia nos certificados assinados por ele e que sua chave privada não é comprometida.

Claro, há CRLs, mas isso é um sub-tópico

    
por 31.01.2018 / 04:52