lundi 13 août 2012

[TMG] Clé du certificat invalide


Il arrive parfois lorsque l'on installe un certificat que l'on rencontre l'erreur suivante lors de la création d'un Listener : Incorrect key type.

Afin de s'assurer que le certificat que l'on génère soit bien valide voici les différents point à respecter afin d'éviter des allez/retour auprès du prestataire d'autorité de certification publique entre autre :
  1. Comme le décrit Yuri Diogenes dans son article Incorrect Key Type when Creating a Web Lister on TMG using V3 Certificate, Forefront TMG ne supporte pas les certificats de type CNG (Certificate New generation) introduits avec Windows 2008.
  2. Ne pas oublier des informations sur l'utilisation de la clé.
Concernant le second point vous trouverez ci-dessous un exemple de fichier de demande de requête à utiliser avec la commande : certreq -New <certreq.inf> <csrfile.req>

[Version]
Signature = "$Windows NT$"

[NewRequest]
Subject = "CN=lyncweb.security.lab,OU=Unifed Communication,O=SNH Lab,L=PARIS,S=FRANCE,C=FR"
Exportable = TRUE
KeySpec = AT_KEYEXCHANGE
KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE | CERT_KEY_ENCIPHERMENT_KEY_USAGE | CERT_NON_REPUDIATION_KEY_USAGE | CERT_DATA_ENCIPHERMENT_KEY_USAGE"
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
MachineKeySet = TRUE
KeyLength = 2048
FriendlyName= "REVERSEADFS"
AlternateSignatureAlgorithm = FALSE

[EnhancedKeyUsageExtension]
OID = 1.3.6.1.5.5.7.3.1

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "dns=lyncweb.security.lab&"
_continue_ = "dns=dialin.security.lab&"
_continue_ = "dns=meet.security.lab&"
_continue_ = "dns=lyncdiscover.security.lab&"

[RequestAttributes]
CertificateTemplate = "WebServer"

Ce qui aura pour effet de générer une CSR (Certificate Signing Request) à envoyer auprès de l'autorité de certification.

Voici une bréve explication de certain des différents champs :
Champ
Description
Exportable
La clé privée sera marquée comme exportable (c'est toujours mieux ;))
KeySpec
Condition d'utilisation de la clé, ici un echange de clé pour monter un tunel SSL/TLS
KeyUsage
Limites pour l'utilisation de la clé, ici signature / chiffrement de la clé / non-répudiation / chiffrement des données
ProviderName
Nom du CSP (Certificate Service Provider) à utiliser
ProviderType
Le CSP à utiliser
MachineKeySet
Spécifie que le magasin de certificat à utiliser est celui de l'ordinateur
KeyLength
Taille de la clé à utiliser
FriendlyName
Nom associé au certificat pour être "user friendly"
AlternateSignatureAlgorithm Active / Désactive l'option CNG pour la demande
OID
Force les Obejct IDentifier (OID) à utiliser, ici Server Authentication
2.5.29.17
Permet de spécifier que l'on va provisionner un champ Subject Alternative Name (OID du champ SAN)
CertificateTemplate
Dans le cas où vous utilisez une PKI interne il est possible de spécifier le modèle de certificat à utiliser. Ce nom correspond au champ Template name et non au nom affiché dans la console.

2 commentaires:

  1. Bonsoir, je ne connais absolument rien à la programmation mais j'ai besoin de votre aide.
    Evidemment j'ai fait une connerie en cryptant mes fichiers sans savoir pourquoi. Puis j'ai supprimé puis réinstaller mon compte utilisateur. entre temps plus possible d'avoir accés au fichier que j'ai mis sur un disque externe.
    J'ai bien retrouvé le certificat mais la cle de cryptage est invalide.
    Que puis je faire?
    merci

    RépondreSupprimer
    Réponses
    1. Bonjour,

      Cela signifie probablement que le certificat que vous utilisez possède soit la mauvaise clé privée soit la mauvaise clé publique. Sans ce dernier il n'existe malheureusement aucune solution.

      Supprimer