6

JIRA と連携する CRUD アプリケーションを作成しました。cabal-dev がすべてを解決するわけではないため、haskell 環境をアップグレードすることになりました。その結果、JIRA とやり取りするコードを使用しようとするたびにこのエラーが発生し、何らかの破損が発生しました。

Spike: HandshakeFailed (Error_Misc "user error (unexpected type received. expecting
handshake and got: Alert [(AlertLevel_Warning,UnrecognizedName)])")

少しグーグルした後、これはtlsまたはtlsを使用するhttp-conduitに関係していると思います。

私は現在使用してtls-1.1.2おり、http-conduit-1.8.7.1 以前は使用 tls-0.9.11していましhttp-conduit >= 1.5 && < 1.7た (どちらが正確かはわかりませんが、古いインストールはなくなりました。

これは、ブレイクが起こっていると私が信じているところです

manSettings :: ManagerSettings
manSettings = def { managerCheckCerts = \ _ _ _-> return CertificateUsageAccept }

これは以前のように見えたものです

manSettings :: ManagerSettings
manSettings = def { managerCheckCerts = \ _ _ -> return CertificateUsageAccept }

これを使用するコードは次のとおりです

initialRequest :: forall (m :: * -> *). URI -> IO (Request m,Manager)
initialRequest uri = do
   initReq <- parseUrl uri -- let the server tell you what the request header
                           -- should look like 
   manager <- newManager manSettings -- a Manager manages http connections
                                     -- we mod the settings to handle
                                     -- the SSL cert. See manSettings below.
   return (modReq initReq,manager)
      where modReq initReq = applyBasicAuth username password initReq

何か取り残されている場合はお知らせください。この時点で、当時と現在の間で何が壊れたのかわかりません。

4

1 に答える 1

4

エラーの原因については推測できますが、可能性はほとんどありません。managerCheckCerts は単に証明書パッケージを使用して、証明書の有効性を検査します。表示されているエラー メッセージは tls 自体から来ているようで、データ トランスポートの障害を示しています。tls を使用してバグ レポートを提出することをお勧めします。できれば最初に、問題を失敗した単一の HTTPS 呼び出しに絞り込むことをお勧めします (さらに良いのは、tls だけを使用して同じ失敗を示すことです)。

于 2013-02-14T05:19:22.380 に答える