14

スタック(Windows の場合) は、ファイルをダウンロードしようとすると (たとえば、stack setupビルド プランのダウンロード中またはダウンロード中に)、次の例外をスローすることがあります。

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

このエラーが発生した場合の回避方法を教えてください。

(これはhttps://github.com/commercialhaskell/stack/issues/234で議論され、解決されました。解決策をより利用できるようにするために質問を再投稿しています。)

4

2 に答える 2

15

stackこれは、さまざまな Web サイトにアクセスしたときに証明書が見つからないことが原因です。Internet Explorer で正しい Web ページを開き (証明書が自動的に追加されます)、スタックを再起動することで修正できます。

どの Web ページ スタックがアクセスするかを調べるには、詳細オプション (-v) を指定して stack を実行し、失敗する前に最後に試行されたダウンロードを確認します。例えば:

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)))

(注: 正確なメッセージは異なる場合があります。現在、問題はコンピューターで解決されているため、Windows を再インストールしないと正確なエラーを再現できません。)

スタックはhttps://www.haskell.org/からダウンロードしているので、Internet Explorer でhttps://www.haskell.org/を開く必要があります。その後、スタックが機能するはずです (別の証明書を追加するには、この手順を繰り返す必要がある場合があります)。

スタックがアクセスしていると思われる他の Web ページは、 https://github.comhttps://www.stackage.orgです。

このソリューションは、スタック 0.1.4.0 を使用する Win 7 32 ビットで検証されています。

于 2015-09-18T14:27:31.530 に答える