2010-10-22 5 views
2

Existe-t-il un moyen de chaîner notre propre paire de clés générée avec un certificat existant qui a été chaîné à une autorité de certification racine (par exemple: verisign)? Fondamentalement, ma question est décrit dans le schéma ci-dessousComment chaîner un certificat SSL

Verisign Root CA 
    | 
    --> Company XYZ certificate 
        | 
        ---> Server foo certificate 

Une fois que j'ai produit une paire de clés pour le serveur foo, comment dois-je chaîne avec la société XYZ cert?

+1

Non, vous ne pouvez pas faire cela. Verisign et les autres autorités de certification racine n'émettent pas de certificats au grand public qui peut créer d'autres certificats - cela casserait tout le point de confiance du certificat racine. –

+1

Il n'y a pas de raison technique pour qu'une autorité de certification commerciale ne signe pas le certificat racine d'une autorité de certification d'entreprise, par exemple, afin que l'entreprise puisse émettre ses propres certificats. Un tel certificat devrait avoir les attributs d'utilisation corrects pour la signature de clé. Les certificats de l'entreprise sont approuvés car son certificat d'autorité de certification a été signé par l'autorité de certification commerciale. C'est exactement comme cela que la chaîne de confiance de l'ICP est censée fonctionner. Il y a, cependant, des raisons commerciales pour lesquelles cela est rarement fait (beaucoup de certificats d'identité font plus d'argent qu'un certificat de signature de clé). – dajames

Répondre

4

Si la société XYZ a un certificat Intermediate Certificate Authority alors vous pouvez. Ce type de certificats est autorisé par l'autorité de certification racine à émettre de nouveaux certificats et ce fait est déterminé au moment de la création par des propriétés spécifiques (contraintes de base, utilisation des clés, utilisation améliorée des clés).

Toutefois, si la société XYZ dispose d'un certificat standard, utilisé par exemple pour identifier des sites Web, des utilisateurs de messagerie ou des développeurs de logiciels, cela n'est pas possible. Même si en pratique rien ne vous empêche de créer un nouveau certificat et de le signer avec un autre (si vous avez sa clé privée), je ne pense pas que vous obtiendrez un certificat valide. Donc, si vous avez le bon type de certificat, vous devrez signer foo avec lui. Vous pouvez utiliser makecert ou open ssl pour créer un nouveau X509 Certificate. Par exemple:

makecert -pe -n "CN=foo" -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -in "Company XYZ" -is my -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -ss my -sr LocalMachine

Vous aurez besoin d'avoir le certificat de la société XYZ installé dans l'ordinateur local/localisation personnelle dans Windows Certificate Store. Le certificat résultant sera ajouté au même endroit et vous pourrez l'exporter à partir de là dans différents formats (.pfx, .cer, .p7b). Cela crée également la paire de clés pour le nouveau certificat.

1

Si vous disposez des deux certificats, essayez de concaténer les fichiers de certificat. Si non, veuillez réviser votre question afin que nous sachions où vous en êtes dans le processus.

Si vous le configurez sur un serveur Apache, consultez la directive SSLCertificateChainFile de mod_ssl.

Questions connexes