我在 tls.Config
中使用 ClientCAs
和 ClientAuth
选项在我的 Go HTTP 应用程序中执行基于证书的客户端身份验证。是否还可以根据提供的 CRL 验证客户端证书?我在 x509
包中看到一些关于 CRL 的函数,但我不确定如何配置 HTTP 服务器来使用它们(即 中似乎没有任何选项>tls.Config
这将导致 CRL 也被使用)。
最佳答案
Is it possible to also verify the client certs against a provided CRL?
是的,通过 crypto/x509
包中提供的功能,这是可能的(正如您在问题中正确陈述的那样)。然而,更高级别的接口(interface),例如 crypto/tls.Config
(由 net/http
使用)不提供该功能。检查 CRL 的一个好机会可能是检查 net/http.Request.TLS.PeerCertificates
。
一些背景知识:crypto/tls
is maintained by security expert Adam Langley谁有opinion on revocation checking (原始来源是 his blog )。尽管我没有证据,但人们可能会认为这是一项经过深思熟虑的设计决定。
关于ssl - 我如何根据 Golang 中的 CRL 验证客户端证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37058322/