OVH Cloud OVH Cloud

Certificate Manager

1 réponse
Avatar
Eric
Bonjour,
Voulant utiliser le service de certificats pour inscrire une carte à puce,
je me retrouve bloqué.
Au chargement du contrôle ActiveX rien ne se passe.
Les options Internet concernant les contrôles sont OK.
Quelqu'un a t'il une idée ?
Merci d'avance.
Eric

1 réponse

Avatar
Jean-Claude BELLAMY
Eric s'est ainsi exprimé:


Voulant utiliser le service de certificats pour inscrire une carte à
puce, je me retrouve bloqué.
Au chargement du contrôle ActiveX rien ne se passe.
Les options Internet concernant les contrôles sont OK.
Quelqu'un a t'il une idée ?


OUI!

Il y a 2 bugs dans le service de certificats, un mineur, un majeur.

1) bug du à la traduction en français des scripts .asp
---------------------------------------------------
En particulier MS s'est complètement planté avec le codage des accents!

Le message abscons que tu vois (avec un caractère
asiatique après l'initiale T) se trouve dans
"%systemroot%system32certsrvcertsces.asp" :

Const L_DownloadingControl_Message="Télécharger le contrôle
ActiveX..."

NB: j'ai retouvé par contre cette constante correctement écrite
dans le code de certsgcl.inc :
Const L_DownloadingControl_Message="Télécharger le contrôle ActiveX..."

2) bug du à un CLSID incorrect de contrôle ActiveX dans un fichier .inc
--------------------------------------------------------------------

la fenêtre popup "Télécharger .." est générée par ce code
contenu dans %systemroot%system32certsrvcertsgcl.inc :

function loadXEnrollPhase2(sContinueCmd) {
// continued from above
// is the control loaded?
if (4!=XEnroll.readyState) { // 4=READYSTATE_COMPLETE
// no, show a message and wait a while
ShowTransientMessage(L_DownloadingControl_Message);
setTimeout("loadXEnrollPhase2(""+sContinueCmd+"")", 500);

En effectuant un debogage, j'ai vu que "XEnroll.readyState"
valait toujours 0 (au lieu de 4)


J'ai ensuite exploré ma BDR, et j'ai constaté la présence de
plusieurs clefs "CEnroll.CEnroll" :

HKEY_CLASSES_ROOTCEnroll.CEnroll
dont la sous-clef HKEY_CLASSES_ROOTCEnroll.CEnrollCurVer
pointe vers CEnroll.CEnroll.2

HKEY_CLASSES_ROOTCEnroll.CEnroll.1
avec un CLSID de {43F8F289-7A20-11D0-8F06-00C04FC295E1}

HKEY_CLASSES_ROOTCEnroll.CEnroll.2
avec un CLSID de {127698e4-e730-4e5c-a2b1-21490a70c8a1}

A partir de cet instant, j'ai supputé un pb de version!

Pour en avoir le coeur net, j'ai créé ensuite un document HTML
faisant appel successivement à chacun de ces ActiveX
<OBJECT ID="XEnroll"
ClassID="clsid:43F8F289-7A20-11D0-8F06-00C04FC295E1">
<OBJECT ID="XEnroll"
ClassID="clsid:127698e4-e730-4e5c-a2b1-21490a70c8a1">
et j'ai affiché la valeur de Xenroll.readystate

Avec le 1er : 0
Avec le 2ème : 4 !!!!

J'ai alors modifié le CLSID contenu dans certsgcl.inc, en remplaçant
43F8F289-7A20-11D0-8F06-00C04FC295E1
par
127698e4-e730-4e5c-a2b1-21490a70c8a1
(c'est à la ligne 78)

Et là, ça a enfin marché !!!!

J'ai signalé cela à Microsoft (c'était fin novembre 2002) et apparemment ils
en ont tenu compte, car le fichier "certsgcl.inc" a été corrigé dans le SP4
(sous la forme de fichier compressé i386certsgcl.in_)

Donc, au choix :
----------------
- passe le SP4 sur ton serveur (ce qui mettra à jour le script)
- copie le "certsgcl.inc" du SP4 :
expand x:i386certsgcl.in_
%systemroot%system32certsrvcertsgcl.inc
- corrige le script "certsgcl.inc" comme je l'ai indiqué


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*