提问人:Jason Whittle 提问时间:10/25/2017 更新时间:10/17/2019 访问量:351
使用 Haskell 中的 tls 库验证客户端 TLS 证书的正确方法是什么?
What is the right way to validate a client TLS cert using the tls library in Haskell?
问:
我有一个工作 Yesod/Warp 服务器。我想为这个服务器配备一个允许管理员用户使用客户端证书进行身份验证的能力。此外,我想为每个管理员分配他们自己的客户端证书,以便我可以在服务器上单独跟踪他们。
当前版本的服务器不使用 TLS(它目前部署在 TLS 终止代理后面),所以我在 cabal 文件中创建了一个额外的可执行目标。这个新的可执行文件将 from the package 替换为 from the package。Network.Wai.Handler.Warp.runSettings
warp
Network.Wai.Handler.WarpTLS.runTLS
warp-tls
在 I provide to 中,我设置并提供了 的实现。我的问题是,我需要做些什么来确保客户端证书有效?客户端证书中已经检查了哪些内容(如果有),哪些内容仍需要检查?目前,服务器证书链和客户端证书是无关的;如果它们以某种方式相关,图书馆会做更多的事情吗?Network.Wai.Handler.WarpTLS.TLSSettings
runTLS
tlsWantClientCert
True
onClientCertificate
onClientCertificate
tls
Network.TLS
有一个标记为“X509 验证”的部分,但我在该部分中没有看到任何执行验证的内容。从源代码来看,该部分中的所有内容似乎都来自包中的模块。该模块还提供了一个功能。这够了吗?是否有从 到 的现有映射?Data.X509.Validation
x509-validation
validate
Data.X509.Validation.FailedReason
Network.TLS.CertificateRejectReason
答: 暂无答案
评论