2015-09-18 12 views
9

Stack (pod Windows) czasami rzuca następujący wyjątek podczas próby pobierania plików (np podczas stack setup lub podczas pobierania plan build):Stos (Haskell) wyrzuca TlsException w Windows

TlsException (HandshakeFailed (Error_Protocol ("certificate has unknown CA",True,UnknownCa))). 

Jak obejść ten błąd, jeśli wystąpi?

(Zostało to omówione i rozwiązane na https://github.com/commercialhaskell/stack/issues/234, jestem przeksięgowanie na pytanie, aby rozwiązanie bardziej dostępne.)

Odpowiedz

9

To wynika z certyfikatów nie jest znalezione przez stack przy dostępie różne strony. Można to naprawić, otwierając odpowiednią stronę w przeglądarce Internet Explorer (która automatycznie dodaje certyfikat), a następnie ponownie uruchamiając stos.

Aby dowiedzieć się, do którego stosu stron dostęp ma dostęp, uruchom stos za pomocą opcji verbose (-v), aby zobaczyć ostatnią próbę pobrania przed awarią. Np:

C:\> stack -v setup 
... some output ... 
2015-09-18 14:19:14.9807056: [debug] Downloading from https://www.haskell.org/ghc/dist/7.10.1/ghc-7.10.1-i386-unknown-mingw32.tar.xz to C:\... @(stack_GXibO6avQtx8ez3M6BHFie:Stack.Setup src/Stack\Setup.hs:845:5) 
TlsException (HandshakeFailed (Error_Protocol ("certificate has unknown CA",True,UnknownCa))) 

(Uwaga:.. Dokładne komunikaty mogą się różnić Ponieważ problem jest rozwiązany na moim komputerze teraz, nie mogę odtworzyć dokładny opis błędu bez ponownej instalacji systemu Windows)

Więc stos jest pobieranie z https://www.haskell.org/, więc musimy otworzyć https://www.haskell.org/ w eksploratorze internetowym. Następnie stos powinien działać (być może trzeba powtórzyć ten krok, aby dodać różne certyfikaty).

Inne strony internetowe, które wydają się być dostępne, to: https://github.com, https://www.stackage.org.

To rozwiązanie zostało zweryfikowane na Win 7 32-bit ze stosem 0.1.4.0.

+0

To rozwiązanie sprawdziło się w Windows 10 z 64-bitowym stosem 1.1.2. –