gpt4 book ai didi

go - 如何使用tls.Config GetClientCertificate()

转载 作者:行者123 更新时间:2023-12-01 22:21:57 24 4
gpt4 key购买 nike

我正在使用Go http客户端对不同的端点(或对于不同的服务器使用不同的客户端证书)进行相互tls验证。
不知道是否可以将GetClientCertificate()用于它。我对此有些困惑。因为CertificateRequestInfo没有服务器端点或主机信息。

  • crypto / tls

  •     GetClientCertificate func(*CertificateRequestInfo) (*Certificate, error) // Go 1.8
  • 源代码
    https://github.com/golang/go/blob/master/src/crypto/tls/common.go#L526

  • 有人可以举这样的例子会很好吗?或者也许有其他方法可以满足此要求?
    go version go1.13.3 linux/amd64

    最佳答案

    来自@marc的一种方法是,每个服务器创建一个http.Client与之对话(或者每个客户端证书至少一个客户端)。
    但是局限性在于,很难像http.Transport一样为MaxIdleConns设置参数。另一个限制是动态更新或使用新证书。
    通过深入研究Golang-1.14.5源代码,http.Transport.DialTLSContext可能满足要求,从而可以在请求级别创建TLS连接(证书来自上下文)。是否有人对此方法有任何想法或意见?缺点之一是自定义DialTLSContext()函数有点复杂,因为基础函数已经很好地实现了。

    关于go - 如何使用tls.Config GetClientCertificate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62887106/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com