Najpierw trochę podstawowych informacji. Mam pakiet SSIS, który działa w 32-bitowym środowisku Windows Server 2003 SP2. Pakiet ostatnio zaczął się nie powieść z następującym błędem podczas zadania skryptu, które pobiera stronę internetową za pomocą połączenia SSL:
"The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Niektóre kopanie ujawniło kilka rzeczy: również nie mogłem uzyskać dostępu do omawianej witryny przy użyciu IE8 z serwera (mogę to zrobić z Firefoksem), a strona właśnie wydała nowy certyfikat SHA256.
Po przeprowadzeniu badań moje obecne założenie jest takie, że problem polega na tym, że nie mam obsługi certyfikatów SHA2 na tym serwerze. Pobrałem certyfikat z witryny i uruchomiłem, CertUtil -verify [cert file]
co daje następujący wynik:
The signature of the certificate can not be verified. 0x80096004 (-2146869244)
Znalazłem kilka poprawek od firmy Microsoft i z tego, co rozumiem, każda z nich powinna włączyć obsługę certyfikatów SHA2:
Poprosiłem więc o poprawkę dla KB968730 i próbowałem ją zainstalować, ale otrzymałem następujący błąd:
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
Wersja biblioteki crypt32 zawartej w poprawce to 5.131.3790.4477, co wyjaśnia, dlaczego instalator nie chce kontynuować.
W tym momencie nie jestem do końca pewien, co muszę zrobić. Artykuł kb968730 wskazuje, że crypt32.dll jest jedynym plikiem, który jest aktualizowany przez poprawkę, co sprawia, że myślę, ponieważ mam już nowszą wersję, czy nie powinienem już mieć tej funkcji? Ale wydaje się, że tak nie jest, chyba że mylę się co do pierwotnej przyczyny problemu.
źródło
Odpowiedzi:
Wersja Crypt32.dll 5.131.3790.5235 rozwiązuje problem (po ponownym uruchomieniu). Jest dostępny na stronie http://support2.microsoft.com/kb/2868626
Poprzednio zainstalowana wersja była 5.131.3790.5014 i nie rozwiązała problemu. Zgodnie z tym postem ( https://mendel129.wordpress.com/tag/crypt32-dll/ ) istnieją dwa warianty wersji 5014: jeden z Windows Update (KB2661254, nie działa), a drugi jako QFE (KB968730 ).
źródło
Ten problem można rozwiązać, instalując aktualizację KB3072630 , która jest instalowana automatycznie, jeśli włączona jest usługa Windows Update. Numer wersji Crypt32.dll to 5.131.3790.5668 po aktualizacji.
KB938397 i KB968730 są przestarzałe i zastąpione powyższą aktualizacją.
źródło
Ten błąd również się pojawił. Chciałbym zainstalować certyfikat na wyznaczonym serwerze i uzyskać ten błąd. Moje rozwiązanie polegało na tym, że musiałem zainstalować certyfikat root / pośredni na każdym serwerze, który wywołał ten konkretny certyfikat. Prawdopodobnie dlatego, że właśnie zaktualizowałem mój wewnętrzny urząd certyfikacji.
Jeśli więc istnieje X serwerów, które wywołują ten certyfikat, zainstaluj go na tych serwerach. To załatwiło mój problem.
źródło