OVH Cloud OVH Cloud

serveur de certificat

1 réponse
Avatar
philippe
bonjour,=20
g install=E9 le service serveur de certificat sur mon=20
serveur 2000. le pb c que lors d'une demande de certificat=20
depuis un pc client via http://nom_serveur/certsrv au=20
moment de transmettre la demande j'ai ce message =E0=20
l'ecran : T#charger le contr?ActiveX....
une id=E9e ?
merci :)

1 réponse

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

g installé le service serveur de certificat sur mon
serveur 2000. le pb c que lors d'une demande de certificat
depuis un pc client via http://nom_serveur/certsrv au
moment de transmettre la demande j'ai ce message à
l'ecran : T#charger le contr?ActiveX....
une idée ?


OUI!
Et même LA solution ! :+)

Il y a 2 bugs, 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
*