Je pense qu'il vaut mieux redéfinir le rôle de chaque élément, ensuite la solution coulera de source
Tu disposes donc d'une autorité de certification (CA) sur ton AD windows. Pour être utilisable cette CA est composée de 2 éléments:
- la clef "privée" qui ne doit pas quitter l'AD et qui a pour vocation à signer d'autres certificats. L'action de "signer" d'autres certificats avec cette CA a pour objectif de les étiqueter comme étant de confiance. Comme un sceau/signature sur un document notarié, etc...
- la clef "publique" ou certificat qui doit être installée sur les postes/applications et qui permet de leur dire de faire confiance à cette autorité de certification et à tous les certificats signés par celle-ci. C'est ce certificat/clef publique qui une fois signé porte les propriétés d'utilisation : type d'usage, durée d'expiration, CommonName (CN), etc...
Ensuite il y a différents "formats" pour stocker et/ou diffuser ces deux éléments et il est facile de les convertir pour passer de l'un à l'autre. Parmi eux il y a: pkcs#7 (format d'exportation par défaut de windows de mémoire), pkcs#12, keystore (java), x509 (utilisé dans la plupart des implémentations sous linux), etc...
Ceci étant dit, ce que tu cherches à faire c'est signer un certificat pour ton application qui tourne sous linux.
Tu as deux façons de t'y prendre:
1)
- Tu génères ta clef privée sur ton serveur linux. Pour rappel la clef privée ne contient aucune information (date de validité, etc...) et constitue ton "secret". Il vaut mieux éviter de le faire sortir de son lieu d'utilisation pour garantir sa confidentialité.
- A partir de cette clef privée tu dois générer un CSR (Certificate Signing Request): une demande de signature à utiliser pour que ta CA puisse plus tard te générer un certificat. C'est au moment de générer le CSR que tu peux lui préciser les propriétés souhaitées pour ton futur certificat: Durée de validité, commonName, etc... Mais rien n'empêche de modifier ces propriétés à nouveau lors de la signature du certificat par la CA (si les outils windows le permettent). Tu peux donc le faire aux deux endroits.
- Tu récupères le CSR, tu le transmets à ta CA et tu récupères le certificat signé fourni en retour. (nb: le certificat retourné ne sera peut-être pas dans le format souhaité et devra probablement être converti)
- Tu as désormais ta clef privée et ton certificat qui peuvent être utilisés sur ta machine linux.
2)
- Tu demandes à ta CA sur ton AD de te générer un couple clef privée / clef publique
- Tu les exportes au format x509 pem (si windows le permet). S'il te propose de les exporter qu'au format pkcs#7 alors il faudra ensuite les convertir au format x509 pour qu'ils soient utilisables sur ta machine linux.
Je préfère la solution 1) car du coup le "secret" (clef privée) ne sort jamais de ta machine linux.
J'ai volontairement pas détaillé les commandes précises pour chaque étape car ça va dépendre de ce que tu souhaites faire et les tutos se trouvent facilement sur internet.
Sinon je ne vois pas ce qui empêche d'extraire la CA de ton AD et de la réimporter après migration ou même de la transformer pour ensuite gérer ta CA depuis une machine linux. Mais par contre je ne nies pas que ça puisse être compliqué, je connais mal le fonctionnement de la PKI sous windows.
Message édité par daenry le 07-06-2014 à 16:02:10