Mi cliente utiliza un certificado autofirmado para que una aplicación funcione. Para poder trabajar, tengo que instalar el certificado raíz que usaron para firmar el certificado.
¿Es posible configurar un certificado raíz para que solo valide para un dominio?
certificate
restrictions
MichaelD
fuente
fuente
Respuestas:
Como una regla de oro:
No , implícito en confiar en el certificado de CA del cliente es la confianza en cada certificado firmado por esa CA.
No conozco ninguna aplicación / biblioteca que tenga una opción fácil que le permita, como usuario final, seleccionar que confiará en sus clientes o en cualquier otro certificado de CA solo para ciertos (sub) dominios, es decir, solo para *. example.com y * .example.org y nada más.
Mozilla tiene una preocupación similar sobre las CA patrocinadas por el gobierno como un punto de atención abierto y, por ejemplo, Chrome tiene controles adicionales incorporados para acceder a los sitios de Google, que fue la forma en que se hizo público el certificado pícaro * .google.com y el compromiso de Diginotar CA .
Pero incluso si no confía en la CA, aún puede importar / confiar en un certificado de servidor específico firmado por esa CA, lo que evitará advertencias SSL para los nombres de host en ese certificado. Eso debería hacer que su aplicación funcione sin errores ni quejas.
Excepciones:
Una opción muy infrautilizada del estándar PKI X.509v3 es la extensión de Restricciones de nombre , que permite que un certificado de CA contenga listas blancas y negras de patrones de nombres de dominio para los que está autorizado a emitir certificados.
Es posible que tenga suerte y su cliente se haya contenido cuando configuró su infraestructura PKI e incluyó esa restricción de Nombre en su certificado de CA. Luego puede importar su certificado de CA directamente y saber que solo puede validar un rango limitado de nombres de dominio.
fuente
example.com
o*.ad.example.com
son válidos. Su CA interna también puede emitir certificados para*.example.bank
permitir un buen ataque de hombre en el medio y espiar sus credenciales bancarias en línea.@CryptoGuy tenía una respuesta bastante buena aquí, pero quería ampliarla.
Parafrasear:
Y así es como haces que funcione (usando la línea de comando de OpenSSL CA)
Crea una CA simple
Puede omitir la creación de una CA intermedia
Cree una solicitud de CA intermedia, con restricciones de nombre.
Con esto en el
ossl_domain_com.cfg
archivo:Luego, firme ese dominio intermedio CA con su CA.
Si omitió la creación del intermedio, use su CA raíz para firmar
Ahora vuelva a firmar la CA del dominio original bajo su autoridad, utilizando su certificado. Puede agregar las extensiones de CA aquí.
Es posible que necesite usar el
-x509-to-req
argumento para crear una solicitud, que firmaría exactamente de la misma manera que el intermedio anterior.Ahora, agregue su CA raíz, CA intermedia y el dominio-cross-ca a la base de datos de confianza de su navegador.
fuente
basicConstraints
línea en el archivo de configuración parece hacer que la extensión de restricciones se incluya dos veces en el certificado, lo que hace que Firefox rechace el certificado con un mensaje de error críptico. Creo que se puede quitar con seguridad.error with certificate to be certified - should be self signed
. ¿Qué significa y cómo resolver esto? pastebin.ubuntu.com/p/QHhpQh2N6J