我正在使用ClientCAs
中的ClientAuth
和tls.Config
选项在Go HTTP应用程序中执行基于证书的客户端身份验证。是否可以根据提供的CRL验证客户端证书?我在x509
包中看到CRL周围有一些功能,但我不确定如何配置HTTP服务器来使用它们(即tls.Config
中似乎没有任何选项。这将导致CRL也被使用)。
答案 0 :(得分:7)
是否可以根据提供的CRL验证客户端证书?
是的,可以通过crypto/x509
包中提供的功能(正如您在问题中正确说明的那样)。但是,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)。虽然我没有证据,但人们可能会认为这是一个刻意的设计决定。