Quelques informations de base d'abord. J'ai un package SSIS qui s'exécute dans un environnement Windows Server 2003 SP2 32 bits. Le package a récemment commencé à échouer avec l'erreur suivante lors d'une tâche de script qui télécharge une page Web à l'aide d'une connexion SSL:
"The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Quelques recherches ont révélé deux choses: je ne pouvais pas non plus accéder au site Web en question à l'aide d'IE8 à partir du serveur (je peux avec Firefox), et le site Web venait de recevoir un nouveau certificat SHA256.
Après avoir fait quelques recherches, mon hypothèse actuelle est que le problème est que je n'ai pas de support pour les certificats SHA2 sur ce serveur. J'ai récupéré le certificat sur le site et j'ai exécuté CertUtil -verify [cert file]
ce qui donne le résultat suivant:
The signature of the certificate can not be verified. 0x80096004 (-2146869244)
J'ai trouvé quelques correctifs de Microsoft, et d'après ce que je comprends, l'un ou l'autre devrait activer la prise en charge des certificats SHA2:
J'ai donc demandé le correctif pour kb968730 et tenté de l'installer, mais j'ai eu l'erreur suivante:
The installation cannot continue because the following packages might not be valid:
KB2616676_V2 c:\windows\system32\dllcache\crypt32.dll 5.131.3790.4905
KB2616676_V2 c:\windows\system32\crypt32.dll 5.131.3790.4905
Reinstall the packages listed above, and then reinstall KB968730
La version de la bibliothèque crypt32 incluse avec le correctif est 5.131.3790.4477, ce qui explique pourquoi le programme d'installation ne continuera pas.
À ce stade, je ne sais pas trop ce que je dois faire. L'article kb968730 indique que crypt32.dll est le seul fichier mis à jour par le correctif, ce qui me fait penser, puisque j'ai déjà une version plus récente, ne devrais-je pas déjà avoir cette fonctionnalité? Mais, il semblerait que ce ne soit pas le cas, à moins que je ne me trompe sur la cause profonde du problème.
La version Crypt32.dll 5.131.3790.5235 résout le problème (après un redémarrage). Il est disponible sur http://support2.Microsoft.com/kb/2868626
La version précédemment installée était la version 5.131.3790.5014 et elle n'a pas résolu le problème. Selon cet article ( https://mendel129.wordpress.com/tag/crypt32-dll/ ), il existe deux variantes de la version 5014: une de Windows Update (KB2661254, ne fonctionne pas) et un autre en tant que QFE (KB968730).
Ce problème est résolu en installant KB30726 , qui est installé automatiquement si vous avez activé Windows Update. Le numéro de version de Crypt32.dll est 5.131.3790.5668 après la mise à jour.
KB938397 et KB968730 sont obsolètes et remplacés par la mise à jour ci-dessus.
J'ai également reçu cette erreur. Je voudrais aller de l'avant et installer le certificat sur le serveur désigné et obtenir cette erreur. Ma solution était que je devais aller de l'avant et installer le certificat racine/intermédiaire sur chaque serveur qui appelait ce certificat spécifique. C'était probablement parce que je venais de mettre à jour mon CA interne.
S'il y a X quantité de serveurs qui appellent à ce certificat, installez-le sur ces serveurs. Cela a réglé mon problème.