make cert security ssl certificate saml certificate-authority

security - makecert exe download windows server 2012



¿Por qué es malo usar un certificado, hecho con la herramienta MakeCert, en producción? (4)

Actualmente estoy trabajando en un proyecto en el que creé un certificado de CA y un par de certificados secundarios para ese certificado de CA. Los certificados se usarán para proteger la comunicación entre servidores en una configuración SAMLV2, así que tendré un certificado para el proveedor de identidades y un cert para el proveedor de servicios. El usuario / navegador no va a validar los certificados, por lo que solo los servidores necesitan confiar en mi CA personalizada. Mi árbol de cert tiene el siguiente aspecto:

  • CustomRootCACert
    • CustomIdentityProviderCert
    • CustomServiceProviderCert

Ahora, escuché a mucha gente decir que es malo usar un certificado de producción casera. Pero cuando pregunto por qué, la gente generalmente solo murmura algo acerca de la seguridad, pero nunca profundiza en los detalles. ¿Existen razones técnicas para no usar mis propios certs en producción? No se me ocurre ninguna ... Por supuesto, me doy cuenta de que si pierdo el control de mi certificado raíz, cualquiera podría comenzar a crear todo tipo de certificados. Pero en este caso también tendrían que instalar los certificados en mis servidores y configurar la aplicación saml para usarlos. Solo entonces podrían comenzar a generar solicitudes y respuestas saml falsas a mis aplicaciones.

Si este es el único problema, esta solución (usando certificados de fabricación propia en producción) sería mejor que la configuración de inicio de sesión que tenemos hoy.


No existe un problema real con el uso de un certificado autofirmado en uso privado, que se utiliza cuando se controla todos los sistemas que necesitan confiar en el certificado raíz homebrew.

Instala manualmente su certificado raíz en cada uno de los sistemas que necesitan confiar en él.

También puede hacerlo en producción y para uso del navegador, por ejemplo, dentro de una organización donde la raíz se puede implementar a través del método de distribución de software, no hay razón para pagar una Autoridad de certificación en la que Microsoft confía.

[edit] En términos de seguridad, el problema es uno de contener la clave privada para su certificado raíz, siempre y cuando pueda asegurarse de que se mantenga privado, entonces puede validar cualquier certificado de esa raíz.


Pregúntese qué prueba un certificado.

Si obtiene un certificado emitido por una CA acreditada, entonces prueba que el titular del certificado ha verificado su identidad con esa CA, con sus estándares de prueba.

Si obtiene un certificado emitido por una CA ad-hoc, prueba que alguien sabe cómo hacer certificados.

Si controlas ambos extremos de la conversación, creo que está bien tener tu propia CA privada para este propósito. Probablemente pueda hacer esto muy seguro (manteniendo la clave privada de CA en un lugar seguro fuera de línea, y haciendo que la firma de un ejercicio de sneakernet).


Si los certificados solo se transfieren internamente, entre sus propios servidores (y el cliente no los utiliza, de una manera u otra), entonces es perfectamente aceptable usar su propia CA interna.
SIN EMBARGO, una sugerencia: no tenga su problema de CA raíz con los certificados de su proveedor. En su lugar, utilice su CA raíz para crear una CA intermedia y luego utilícela para emitir certificados de proveedor. Esto te ayudará a largo plazo, cuando tengas que comenzar a administrar la caducidad del certificado, extender el sistema / infraestructura, listas de revocación, etc.


Como solo está utilizando el certificado para proteger el tráfico de la red y no para autenticar usuarios / computadoras, parece que tiene un uso legítimo para usar MakeCert.exe.

Siento que hay una cosa que vale la pena mencionar. Después de pasar algún tiempo trabajando con la interfaz MakeCert.exe, puede considerar usar un servidor de certificados raíz independiente.

Considera estos puntos:

  • (Casi) Todas las versiones de Windows Server incluyen Certificate Server Services gratis
  • El servidor de CA independiente de Windows es extremadamente simple de instalar y configurar
  • El servidor de CA autónomo de Windows se puede instalar en una máquina virtual y encender / apagar cada vez que necesite emitir un certificado adicional
  • Un servidor de CA independiente basado en VM puede ejecutarse utilizando muy poca memoria (por ejemplo, 256 MB)
  • El servidor de CA autónomo de Windows incluye una interfaz de inscripción basada en la web agradable y limpia para simplificar la solicitud de certificados.
  • La verificación de CRL se puede usar o no, dependiendo de sus necesidades.

En el pasado, primero comencé con selfssl.exe y, finalmente, pasé a MakeCert.exe para generar un certificado raíz y luego emití mis certificados de cliente. Pero después de luchar con la sintaxis y siempre tener que recordar dónde puse ese Certificado de Root, cambié a usar una CA Raíz Stand-Alone en una máquina virtual.