如何在Golang中针对CRL验证客户端证书?

时间:2016-05-05 19:02:24

标签: ssl go tls1.2

我正在使用ClientCAs中的ClientAuthtls.Config选项在Go HTTP应用程序中执行基于证书的客户端身份验证。是否可以根据提供的CRL验证客户端证书?我在x509包中看到CRL周围有一些功能,但我不确定如何配置HTTP服务器来使用它们(即tls.Config中似乎没有任何选项。这将导致CRL也被使用)。

1 个答案:

答案 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)。虽然我没有证据,但人们可能会认为这是一个刻意的设计决定。