Sì, funziona benissimo; un'autorità di certificazione di Windows non ha scrupoli nell'esecuzione come subordinata a una radice non Windows.
Testato con una radice OpenSSL e un subordinato di Windows 2008 R2 in modalità Enterprise.
Un paio di cose da giocare bene con ciò che la CA MS si aspetta nella configurazione di OpenSSL:
Le posizioni AIA e CDP valide devono essere applicate al certificato radice, nella sezione configurata dalla x509_extensions
proprietà della [req]
sezione per la radice autofirmata . Qualcosa del genere:
authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem
crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
Una determinata configurazione OpenSSL probabilmente non consente le CA subordinate per impostazione predefinita. Modificalo per le richieste firmate (assicurati che non sia presente per le richieste che non dovrebbero essere CA, ovviamente). Questo sarà nella sezione configurata dalla x509_extensions
proprietà della [ca]
sezione:
basicConstraints=CA:TRUE
certificatePolicies=2.5.29.32.0
Quindi, faremo una CA per testare.
Crea la tua radice:
openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca
Gioca con la tua configurazione e crea i file e le directory necessari nella [ca]
sezione della tua configurazione OpenSSL.
Tutto pronto per far funzionare la parte Microsoft; creare una CA subordinata di Windows con firma manuale.
Carica la richiesta di certificato sul server OpenSSL. Mentre ci sei, scarica il certificato di root. Importalo nell'archivio radice attendibile - del computer, non del tuo utente!
Rilascia il certificato subordinato:
openssl ca -in test-subca.req
(you might need to specify a permissive policy manually with -policy, check your config)
Se ciò non ha funzionato, probabilmente la tua CA ha un problema con la configurazione: nuova directory certs, file indice, file seriale, ecc. Controlla il messaggio di errore.
Se è andato, allora è tutto. In caso contrario, creare un elenco CRL e inserirlo nel CDP configurato in precedenza; Ho appena installato Apache e l'ho bloccato in webroot:
openssl ca -gencrl -out /var/www/root.crl
E metti il certificato nella posizione AIA, se non lo è già:
cp /etc/ssl/certs/root.pem /var/www/root.pem
Scarica il certificato subordinato appena rilasciato e installalo nella CA con lo snap-in MMC dell'autorità di certificazione. Riguarderà qualsiasi problema con fiducia o convalida, ma non ha obiezioni morali nel prenderlo.
Risultato finale; una CA di Windows funzionante senza lamentarsi dello snap-in Enterprise PKI, con una spia OpenSSL Generated Certificate
negli attributi.