Un certificado es básicamente un enlace entre una identidad y una clave pública, pero hay detalles:
- La noción de "identidad" que es más adecuada para su situación no es necesariamente la misma que la noción de identidad para un certificado de servidor SSL (es decir, un nombre DNS del servidor ...).
- El ciclo de vida de la clave privada es importante: quién la genera, dónde se almacena, si hay copias de seguridad ...
- El contenido del certificado puede activar o desactivar algunos usos, y es posible que desee cierto control sobre eso.
Si desea producir su propio certificado, entonces quiere operar su propia Autoridad de Certificación. Hay un buen software de código abierto para eso (por ejemplo, EJBCA ). Sin embargo, este curso de acción implica dos áreas principales de costos:
-
Tienes que operar la CA. PKI es 5% de tecnología, 95% de procedimientos; tener el software está bien, pero ejecutarlo, administrar el acceso físico, renovar, auditar ... será lo que cueste más, con diferencia.
-
Los certificados de su CA solo serán aceptados por sus máquinas si la clave pública de su CA está instalada en estas máquinas como una CA raíz, o si su CA ha sido emitida por otra CA que está instalada en sus máquinas como una raíz.
El uso de certificados de una "CA comercial" resuelve el segundo punto, pero a un alto costo. En particular, si desea tener su propia CA, debe estar marcada como un "certificado de CA" (que está escrito en Restricciones básicas extensión del certificado). Una CA comercial puede aceptar emitirle un certificado de CA, firmado por ellos mismos, pero será costoso (al menos miles de dólares); y requerirán que usted opere su propia CA dentro de las reglas estrictas (incluido el seguro, la publicación de una Declaración de Prácticas de Certificación detallada y legalmente vinculante, etc.).
Si solo desea producir certificados para sus propios usos, en los sistemas que usted controla, entonces tiene relativamente poco sentido confiar en una CA comercial: es mucho más fácil tener su propia raíz e instalarla en todos máquinas relevantes.
También es muy posible que su problema en cuestión no requiera verdaderos "certificados". Los certificados son una solución a un problema de distribución de claves : el punto de los certificados es que un sistema determinado puede obtener conocimiento de una clave pública y confianza en la identidad del propietario de la clave, de forma dinámica, en virtud de ver y validación de un certificado. Si, en su sistema, hay 8 claves en total y usted tiene control sobre todos los clientes y servidores, entonces es probable que no necesite certificados ; Solo quieres pares de llaves asimétricas. Las claves públicas se publican a priori (insertadas a través de la configuración o codificadas en el software relevante).
Para una compatibilidad fácil y barata con los protocolos existentes (por ejemplo, SSL), puede ser conveniente codificar las claves públicas como algo que se parece a "certificados"; tradicionalmente, estos certificados serán "autofirmados" porque hay un campo no opcional para una firma en el formato del certificado.
No hay nada intrínsecamente incorrecto con los certificados autofirmados si se asignan a su problema actual. No es necesario invocar una PKI si su situación no tiene un problema de distribución de claves.