El certificado X509 está, básicamente, hecho de varios tipos de información:
- Los datos declarativos del certificado, que incluyen todo lo que los certificados reclaman sobre el propietario de la clave (principalmente lo que encuentra en los campos de asunto del certificado, pero también comúnmente son OID gusta)
- Los datos de alcance del certificado (por ejemplo: uso de clave, período de validez, etc.)
- La mitad pública del par de claves asociadas con el certificado.
- La información de la cadena de confianza del certificado (que garantiza que los datos declarativos y de alcance son correctos) y los datos de revocación
- Algunos campos técnicos (qué algoritmo se usa, cuál es el número de serie del certificado, etc.)
Puede poner cualquier cosa que desee en los datos declarativos y de alcance y puede controlar lo que está en los campos técnicos (en su mayoría) siempre que su CA acepte validar su certificado cuando lo envíe (o mientras esté utilizando certificados autofirmados).
La parte de clave pública del certificado está dictada por cualquier algoritmo de clave que haya decidido utilizar. Podría usar la misma clave para todos sus certificados, aunque no le sugiero que lo haga: no hay una razón válida para hacerlo en la práctica y podría poner en peligro la seguridad de todo el sistema, dependiendo de cómo se utilicen las claves.
Finalmente, la información de confianza incluye principalmente la referencia del emisor (que en su mayoría puede decidir o, al menos, saber de antemano en la mayoría de los casos) y la firma digital de todo el certificado (que no tiene forma de conocer o controlar) ). El uso de un certificado autofirmado no le ayudaría, en este caso, ya que la única forma de que las dos firmas sean 100% idénticas sería que todas las partes de los datos de la firma también sean idénticas: también puede hacer una copia. del certificado original en lugar de firmarlo dos veces.
La buena noticia, sin embargo, es que si bien no debe usar la misma clave para varios certificados, no tiene que hacerlo. Simplemente puede crear su propia CA y hacer que su aplicación verifique todos los certificados contra esa raíz de la CA: eso permitirá a todos sus usuarios verificar las claves que está distribuyendo, incluidas las claves futuras, sin necesidad de debilitar la infraestructura al reutilizar una Conjunto fijo de llaves.
Fijar la autoridad del certificado, en lugar del certificado hoja, es un poco más complejo de implementar, pero también es más flexible y permite un uso más complejo de los escenarios.