OVH Cloud OVH Cloud

Autorite de certificats et active X sur poste client

2 réponses
Avatar
fp
Bonjour,

J'essaie de me connecter à partir d'un poste Windows XP SP1 sur un serveur
de certificat racine de l'entreprise par http://serveur/certsrv (mon serveur
est W2K SP3)

Le formulaire de demande de certificat apparaît bien, mais à la 2e étape il
y a un msg chargement Active X qui ne disparaît pas et qui m'empêche de
continuer

Une histoire de sécurité IE 6.0 ou autre chose ?

merci à tous

FP

2 réponses

Avatar
Jean-Claude BELLAMY
Dans le message news:cu07q3$88d$ ,
fp s'est ainsi exprimé:

Bonjour,

J'essaie de me connecter à partir d'un poste Windows XP SP1 sur un
serveur de certificat racine de l'entreprise par
http://serveur/certsrv (mon serveur est W2K SP3)

Le formulaire de demande de certificat apparaît bien, mais à la 2e
étape il y a un msg chargement Active X qui ne disparaît pas et qui
m'empêche de continuer



CLASSIQUE!!!!

Car j'ai rencontré (et RÉSOLU) exactement le même pb.
Il y a 2 bugs dans le service de certificats de W2K FR (SP3 et en dessous),
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 l'on peut voir éventuellement
(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" :

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

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

HKCRCEnroll.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 au Support Premier de Microsoft (c'était fin novembre
2002)
lequel en a tenu compte et a fait remonter le problème à Redmond, si bien
que le fichier "certsgcl.inc" a été corrigé dans le SP4 comme je l'avais
suggéré (sous la forme de fichier compressé i386certsgcl.in_)
*******************************************************

Donc, au choix :
----------------
- installe le SP4 sur ton serveur (ce qui mettra à jour le script)
- vérifie la BDR et copie si nécessaire le "certsgcl.inc"
à partir 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
*

Avatar
fp
Impressionnant ... je me sens petit petit
Je garde ta réponse sur mon intranet si tu permets
Merci Jean-Claude

FP
"Jean-Claude BELLAMY" a écrit dans le
message de news:
Dans le message news:cu07q3$88d$ ,
fp s'est ainsi exprimé:

Bonjour,

J'essaie de me connecter à partir d'un poste Windows XP SP1 sur un
serveur de certificat racine de l'entreprise par
http://serveur/certsrv (mon serveur est W2K SP3)

Le formulaire de demande de certificat apparaît bien, mais à la 2e
étape il y a un msg chargement Active X qui ne disparaît pas et qui
m'empêche de continuer



CLASSIQUE!!!!

Car j'ai rencontré (et RÉSOLU) exactement le même pb.
Il y a 2 bugs dans le service de certificats de W2K FR (SP3 et en
dessous), 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 l'on peut voir éventuellement
(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" :

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

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

HKCRCEnroll.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 au Support Premier de Microsoft (c'était fin novembre
2002)
lequel en a tenu compte et a fait remonter le problème à Redmond, si bien
que le fichier "certsgcl.inc" a été corrigé dans le SP4 comme je l'avais
suggéré (sous la forme de fichier compressé i386certsgcl.in_)
*******************************************************

Donc, au choix :
----------------
- installe le SP4 sur ton serveur (ce qui mettra à jour le script)
- vérifie la BDR et copie si nécessaire le "certsgcl.inc"
à partir 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
*