Sí, funciona bien; una autoridad de certificación de Windows no tiene reparos en ejecutarse como subordinado de una raíz que no sea Windows.
Probado con una raíz OpenSSL y una subordinada 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 en este sentido:
authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem
crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
Una configuración de OpenSSL dada probablemente no permita CA subordinadas por defecto. Cambie eso para las solicitudes firmadas (asegúrese de que esto no esté en su lugar para las solicitudes que no deberían ser CA, por supuesto). Esto 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
Juega con tu configuración y crea los archivos y directorios necesarios en la [ca]
sección de tu configuración OpenSSL.
Todo listo para poner en marcha el lado de Microsoft; 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 de raíces de confianza - de la computadora, no su 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 certificaciones, archivo de índice, archivo de serie, etc. Verifique el mensaje de error.
Si se fue, entonces eso es todo. Si no lo ha hecho, haga una CRL y colóquela en el CDP que configuró anteriormente; Acabo de instalar Apache y lo atasqué en webroot:
openssl ca -gencrl -out /var/www/root.crl
Y ponga 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 la Autoridad de certificación. Se quejará de cualquier problema con la confianza o la validación, pero no tiene ninguna objeción moral para tomarlo.
Resultado final; una CA de Windows funcional sin quejas del complemento Enterprise PKI, con un indicador OpenSSL Generated Certificate
en los atributos.