¿Debo distribuir certificados de CA raíz o CA intermedios al cliente?

0

He estado siguiendo este tutorial para crear una CA raíz, una CA intermedia y un certificado de servidor.

Puedo verificar:

  • el certificado intermedio con el certificado raíz
  • el certificado del servidor con el certificado intermedio

Pero no puedo verificar el certificado intermedio + servidor cert del paquete con el certificado raíz.

En otras palabras:

# verify intermediate cert with root cert: OK
openssl verify -CAfile root/certs/ca.cert.pem intermediate/certs/intermediate.cert.pem

# verify server cert with intermediate cert: OK
openssl verify -CAfile intermediate/certs/intermediate.cert.pem intermediate/certs/my.domain.cert.pem

# create bundle intermediate cert + server cert
cat intermediate/certs/my.domain.cert.pem intermediate/certs/intermediate.cert.pem  > certs/my.domain.bundle.pem

# checking bundle with the root cert: NOT OK
openssl verify -CAfile root/certs/ca.cert.pem intermediate/certs/my.domain.bundle.pem # NOT OK

Eso me confunde porque pensé que implementaría el certificado de CA raíz en los clientes y que el servidor usara el certificado intermedio + certificado de servidor.

¿Eso significa que solo debo implementar el certificado intermedio en los clientes y que el servidor use solo el certificado del servidor?

    
pregunta little-dude 24.07.2018 - 18:27
fuente

1 respuesta

3

En general, un servidor debe entregar el certificado del servidor y los certificados intermedios. Para citar RFC 5246 (énfasis mío):

  

Si el servidor está autenticado, su mensaje de certificado debe proporcionar un    cadena de certificados válida que conduce a un certificado aceptable   autoridad.

Es preferible que el servidor haga esto, en lugar de distribuir intermedios a todos los clientes, porque tratar de asegurarse de que todos sus clientes obtengan y mantener los intermedios adecuados es mucho más difícil que entregarlos cada vez como parte de apretón de manos.

Haciendo eco de esta configuración, debe intentar, en lugar de usar el paquete como su objetivo, usar el argumento -untrusted para openssl verify para integrar los intermedios:

  

- archivo no confiado

     

Un archivo de certificados no de confianza adicionales (CA de emisor intermedio)   utilizado para construir una cadena de certificado desde el certificado sujeto a   un ancla de confianza. El archivo debe contener uno o más certificados en   Formato PEM. Esta opción se puede especificar más de una vez para incluir   Certificados no confiables de varios archivos.

    
respondido por el gowenfawr 24.07.2018 - 19:36
fuente

Lea otras preguntas en las etiquetas