duanmu5039 2016-05-05 19:02
浏览 328
已采纳

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

I'm using the ClientCAs and ClientAuth options in tls.Config to do cert-based client authentication in my Go HTTP application. Is it possible to also verify the client certs against a provided CRL? I see in the x509 package there are some functions around CRLs, but I'm not sure how to configure the HTTP server to use them (ie. there doesn't seem to be any options in tls.Config that would cause a CRL to also be used).

  • 写回答

1条回答 默认 最新

  • donglin9717 2016-05-06 12:36
    关注

    Is it possible to also verify the client certs against a provided CRL?

    Yes, it is possible, by means of the functionality provided in the crypto/x509 package (as you correctly stated in your question). However, higher-level interfaces such as crypto/tls.Config (consumed by net/http) do not offer that. A good chance to implement a check against a CRL probably is by inspecting net/http.Request.TLS.PeerCertificates.

    A little bit of background: crypto/tls is maintained by security expert Adam Langley who has an opinion on revocation checking (original source is his blog). Though I have no evidence, one might assume that this was a deliberate design decision.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?