我试图在haskell中制作简单的https服务器,可能由于我的无知,我很难接受。
以下是我到达的可编辑的代码段。 (也许不行)
import Application () -- for YesodDispatch instance
import Foundation
import Yesod.Core
import Network.Wai.Handler.Warp
import Network.Wai.Handler.WarpTLS
main :: IO ()
main = do
app <- toWaiApp App
runTLS tSet defaultSettings app
tSet = tlsSettings "server.crt" "server.pem"
它只是stack new proj yesod-minimal
项目的Main.hs的一部分,具有warp-tls依赖项。
但是建造的一切有问题,
我想知道我哪里出错或出错了什么。以下是问题。
cmd>curl https://localhost:3000 --insecure -v
* Rebuilt URL to: https://localhost:3000/
* Trying ::1...
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 3000 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (OUT), TLS alert, Server hello (2):
* error:04091077:rsa routines:INT_RSA_VERIFY:wrong signature length
* Closing connection 0
* TLSv1.2 (OUT), TLS alert, Client hello (1):
curl: (35) error:04091077:rsa routines:INT_RSA_VERIFY:wrong signature length
可执行日志
24/Oct/2015:15:50:15 +0900 [Info#yesod-core] Application launched @(yesod_2EJXksqBDOz5UARIVdQquS:Yesod.Core.Dispatch .\Yesod\Core\Dispatch.hs:157:11)
.exe: HandshakeFailed (Error_Misc "user error (unexpected type received. expecting handshake and got: Alert [(AlertLevel_Fatal,DecryptError)])")
.exe: HandshakeFailed (Error_Protocol ("fallback is not allowed",True,InappropriateFallback))
.exe: HandshakeFailed (Error_Misc "user error (unexpected type received. expecting handshake and got: Alert [(AlertLevel_Fatal,DecryptError)])")
.exe: HandshakeFailed (Error_Protocol ("fallback is not allowed",True,InappropriateFallback))
如何从未知原因处理CPU高现象。 cpu usage images 在这种情况下,我不知道调试信息会有什么帮助。
当前的GHC 7.10.2可以解决由于windows&#39;而导致的编译时错误。命令行长度限制,我受此影响。我尝试设置STACK_ROOT并缩短项目路径,但是无法构建yesod-simple模板项目。 我可以尝试另一个工作或黑客攻击吗?我甚至尝试在git repo中手动构建ghc 7.11,但似乎堆栈不支持使用更新的GHC。
与上述代码中的主题toWaiApp
功能略有不同,我相信函数的存在,但很难找到函数的名称。结果是,yesod维护堆栈文档而不是hackage。有没有像python模块文档那样方便的方法?
我不应该选择haskell吗?它远不是性能至关重要的东西,但是有什么关键的东西像Haskell的TLS实现的缺陷或缺乏构建工具对Windows的支持吗?