Eu tenho uma PKI interna com uma CA raiz compartilhada e várias CAs intermediárias. Como faço para que algo emitido por qualquer CA intermediária confie em tudo?

Eu tenho uma PKI interna com uma CA raiz compartilhada e várias CAs intermediárias. Como faço para que algo emitido por qualquer CA intermediária confie em tudo?

Situação: tenho uma PKI interna com uma CA raiz compartilhada e várias CAs intermediárias. Quero que qualquer coisa emitida por qualquer CA intermediária confie umas nas outras. Existe uma maneira de fazer isso que a maioria dos programas/linguagens ficará satisfeita?

Meu entendimento atual é que issonão éfacilmente possível, mas estou me perguntando se meu entendimento é falho.

Então, se tivermos programas:

  • funky fresco com uma cadeia de confiança de raiz compartilhada => primeiro int
  • brilhantemente limpo com cadeia de confiança de raiz compartilhada => segundo int

e eu absolutamente preciso de confiança mútua entre esses dois. Minha única opção é criar um grande certificado de CA com root=>first e root=>second grampeados um no outro? Ou posso de alguma forma ter apenas uma corrente com raiz?

Eu poderia superar tudo isso adicionando a raiz ao armazenamento confiável no nível do sistema operacional ou, se forem contêineres, em um determinado armazenamento confiável de contêineres? (abaixo /etc/pki/ca-trust/source/anchorsou algo assim)

Meu segundo pensamento, e talvez este seja ruim, mas como tudo é interno e temos uma CRL, podemosapenasuse uma CA raiz e simplesmente mantenha um olhar atento e uma CRL limpa para certificados TLS em vez de certificados em nível de CA.

Existe alguma maneira de fazer com que o software construa sua própria cadeia se eu expor as CRLs e CAs em pontos de extremidade específicos definidos em qualquer lugar?

Responder1

Não tenho certeza se entendi sua pergunta corretamente ou se você entendeu direito o conceito, mas

  • Os certificados não confiam uns nos outros - o cliente TLS, em vez disso, confia em algumas autoridades de certificação e obtém confiança nos certificados do servidor a partir disso.
  • Um cliente TLS basicamente confia em cada certificado emitido por uma CA confiável, desde que corresponda às expectativas, como não expirado, corresponda ao assunto, etc. O cliente TLS deve ser capaz de construir a cadeia de confiança até a CA confiável. Portanto, o cliente TLS precisa conhecer os certificados intermediários relevantes que geralmente são enviados dentro do handshake TLS.

Assim, se você deseja que qualquer cliente confie em qualquer certificado, independentemente de qual CA intermediária foi usada, então a) o cliente precisa confiar na CA raiz eb) os servidores precisam enviar as CAs intermediárias durante o handshake TLS, além do servidor certificado.

Veja tambémEstrutura de certificado SSL 101: Como o navegador realmente verifica a validade de um determinado certificado de servidor?.

informação relacionada