Ouais, ça marche très bien; une autorité de certification Windows n'a aucun scrupule à s'exécuter en tant que subordonné à une racine non Windows.
Testé avec une racine OpenSSL et un subordonné Windows 2008 R2 en mode Entreprise.
Quelques choses pour bien jouer avec ce que la MS CA attend dans la configuration OpenSSL:
Les emplacements AIA et CDP valides doivent s'appliquer au certificat racine, dans la section configurée par la x509_extensions
propriété de la [req]
section pour la racine auto-signée. Quelque chose dans ce sens:
authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem
crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
Une configuration OpenSSL donnée n'autorise probablement pas les CA subordonnées par défaut. Modifiez cela pour les demandes signées (assurez-vous que cela n'est pas en place pour les demandes qui ne devraient pas être des autorités de certification, bien sûr). Ce sera dans la section configurée par la x509_extensions
propriété de la [ca]
section:
basicConstraints=CA:TRUE
certificatePolicies=2.5.29.32.0
Nous allons donc faire une CA pour tester.
Faites votre racine:
openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca
Jouez avec votre configuration et créez les fichiers et répertoires nécessaires dans la [ca]
section de votre configuration OpenSSL.
Tout est prêt pour faire avancer le côté Microsoft; créer une autorité de certification subordonnée Windows avec signature manuelle.
Téléchargez la demande de certificat sur le serveur OpenSSL. Pendant que vous y êtes, téléchargez le certificat racine. Importez-le dans le magasin racine de confiance - de l'ordinateur, pas de votre utilisateur!
Émettez le certificat subordonné:
openssl ca -in test-subca.req
(you might need to specify a permissive policy manually with -policy, check your config)
Si cela ne fonctionne pas, votre autorité de certification a probablement un problème avec la configuration - nouveau répertoire de certificats, fichier d'index, fichier série, etc. Vérifiez le message d'erreur.
Si c'est parti, alors c'est tout. Si ce n'est pas le cas, créez une CRL et placez-la dans le CDP que vous avez configuré ci-dessus; Je viens d'installer Apache et de le bloquer dans webroot:
openssl ca -gencrl -out /var/www/root.crl
Et placez votre certificat à l'emplacement AIA, s'il ne l'est pas déjà:
cp /etc/ssl/certs/root.pem /var/www/root.pem
Téléchargez le certificat subordonné nouvellement émis et installez-le sur l'autorité de certification avec le composant logiciel enfichable MMC Autorité de certification. Il se plaindra de tout problème de confiance ou de validation, mais il n'a aucune objection morale à le prendre.
Résultat final; une autorité de certification Windows fonctionnelle sans se plaindre du composant logiciel enfichable PKI d'entreprise, avec un témoin OpenSSL Generated Certificate
dans les attributs.