
Quiero configurar una autoridad de certificación empresarial para mi dominio. Entonces puedo emitir certificados para diversos fines. Me gustaría seguir la mejor práctica de tener una CA fuera de línea como raíz y configurar mi CA empresarial como subordinada. Pero parece una tontería otorgar una licencia de una copia completa de Windows para esta tarea.
Lo que espero poder hacer es instalar alguna distribución en vivo en una unidad flash USB, luego instalar openssl y configurar mi CA en una unidad flash. Cuando esté listo para crear la clave/certificado raíz, desconectaré la computadora de la red y nunca volveré a usar ese disco USB en una computadora conectada a la red.
¿Podré firmar y crear correctamente un certificado de CA subordinado para una CA empresarial de Windows que sea utilizable? ¿Qué opciones necesito usar con OpenSSL para crear la CA y firmar correctamente el certificado de CA subordinada?
Intenté buscar en la web yesteFue lo único que pude encontrar sobre el tema. Pero es anterior a 2008 y no estoy del todo seguro de que la persona haya tenido éxito.
Respuesta1
Sí, funciona bien; una autoridad certificadora de Windows no tiene reparos en ejecutarse como subordinada a una raíz que no sea de Windows.
Probado con una raíz OpenSSL y un subordinado de Windows 2008 R2 en modo Enterprise.
Un par de cosas para jugar bien con lo que MS CA espera en la configuración de OpenSSL:
Las ubicaciones válidas de AIA y CDP deben aplicarse al certificado raíz, en la sección configurada por la
x509_extensions
propiedad de la[req]
sección para la raíz autofirmada. Algo parecido a esto:authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
Una configuración OpenSSL determinada probablemente no permita CA subordinadas de forma predeterminada. Cambie eso para solicitudes firmadas (asegúrese de que esto no esté implementado para solicitudes que no deberían ser CA, por supuesto). Este estará en la sección configurada por la
x509_extensions
propiedad de la[ca]
sección:basicConstraints=CA:TRUE certificatePolicies=2.5.29.32.0
Entonces, haremos una CA para probar.
Haz tu raíz:
openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca
Juguetee con su configuración y cree los archivos y directorios necesarios en la [ca]
sección de su configuración OpenSSL.
Todo listo para que el lado de Microsoft funcione; cree una CA subordinada de Windows con firma manual.
Cargue la solicitud de certificado al servidor OpenSSL. Mientras lo hace, descargue el certificado raíz. Importarlo a la tienda raíz de confianza: ¡de la computadora, no de tu usuario!
Emitir el certificado subordinado:
openssl ca -in test-subca.req
(you might need to specify a permissive policy manually with -policy, check your config)
Si eso no funcionó, su CA probablemente tenga un problema con la configuración: nuevo directorio de certificados, archivo de índice, archivo de serie, etc. Verifique el mensaje de error.
Si fue así, entonces eso es todo. Si no lo ha hecho, cree una CRL y colóquela en el CDP que configuró anteriormente; Acabo de instalar Apache y lo bloqueé en webroot:
openssl ca -gencrl -out /var/www/root.crl
Y coloque su certificado en la ubicación de AIA, si aún no lo está:
cp /etc/ssl/certs/root.pem /var/www/root.pem
Descargue el certificado subordinado recién emitido e instálelo en la CA con el complemento MMC de Autoridad de certificación. Se quejará de cualquier problema de confianza o validación, pero no tiene ninguna objeción moral a aceptarlo.
Resultado final; una CA de Windows que funcione sin quejas del complemento Enterprise PKI, con un indicador OpenSSL Generated Certificate
en los atributos.
Respuesta2
Entiendo a qué te refieres, pero no creo que OpenSSL sea la herramienta adecuada para el trabajo. Quizás quieras mirarProyectos de autoridad de certificación de código abiertocomoEJBCAque están más centrados en esta funcionalidad que OpenSSL y tienen documentación específica que puede utilizar.
No veo ninguna razón por la que el concepto no funcione, ya que todo lo que hay que hacer es firmar el certificado de la CA subordinada. Si estuviera pagando a una CA pública para que hiciera esto por usted, no necesariamente sabría ni le importaría qué tipo de servidor estaban usando.
Lo único que debes preocuparte es:
- puedes firmar el certificado del CSR generado por tu subordinado
- el resultado se puede instalar en el propio subordinado
- tiene un certificado de firma raíz que puede instalarse como confiable en cualquier cliente al que se dirija
- puedes generar una lista de revocación que se publica en algún lugar
No puedo decir que haya hecho esto, pero estoy seguro de que si sigue los documentos para generar una CSR desde un cuadro de Windows y luego sigue los documentos de CA para generar un certificado .p7k a partir de una CSR, entonces debería estar bien.
Por cierto, te recomendaría que crees tu CA como una máquina virtual para un hipervisor popular como Hyper-V o VMware, en lugar de un disco de arranque, asegúrate de almacenarla de forma muy segura en algún lugar donde tu sucesor pueda encontrarla y girarla. conéctelo fuera de línea periódicamente para asegurarse de que se ejecute o transfiéralo a nuevos medios/tecnología. Una CA raíz puede tener una vida de 10 o 20 años...