• 前面的介绍我们理解了数字签名等知识,同时学习了 OpenSSL 生成私钥和证书并验证
  • 之前提过我们基于 BitTorrent 协议开发了一个 docker 镜像分发加速插件
  • 中间涉及到了配置 docker 的代理
  • 下面我们简单介绍下 Golang 的 http.transport 配置了网络代理后的网络行为并编写一个简单的代理转发,加深理解代理转发行为

1. http.Transport 配置代理

  • http 代理配置代码如下:
func TLSTransport(caFile string) (*http.Transport, error) {
    tr := &http.Transport{TLSClientConfig: &tls.Config{}, Proxy: http.ProxyFromEnvironment}
    if len(caFile) == 0 {
        tr.TLSClientConfig.InsecureSkipVerify = true
        return tr, nil
    }

    ca, err := ioutil.ReadFile(caFile)
    if err != nil {
        return nil, fmt.Errorf("read CA file failed: %v", err)
    }
    pool := x509.NewCertPool()
    pool.AppendCertsFromPEM(ca)

    tr.TLSClientConfig.RootCAs = pool

    return tr, nil
}
View Code

相关文章:

  • 2021-10-09
  • 2023-02-10
  • 2021-04-27
  • 2021-11-14
  • 2022-01-11
  • 2022-12-23
  • 2021-10-18
  • 2021-04-14
猜你喜欢
  • 2021-05-16
  • 2021-07-29
  • 2021-04-27
  • 2021-05-21
  • 2021-05-16
  • 2022-01-10
  • 2021-08-08
相关资源
相似解决方案