如何忽略无效的 TLS
Posted
技术标签:
【中文标题】如何忽略无效的 TLS【英文标题】:How to ignore invalid TLS 【发布时间】:2021-04-13 20:39:09 【问题描述】:我通过向 prometheus 端点发送 HTTP Get() 来获取 prometheus 指标。如果 prometheus 端点是 http
,这可以工作,但是当它是 https
时会抛出错误。
现在我想要一个用户设置为ignore_invalid_tls
,可以设置为真或假。
要实现这一点,我需要忽略https
端点引起的错误。
我试过这种方法:
client := http.Client
Timeout: time.Duration(configuration.Endpoint.Timeout) * time.Second,
Transport: &http.Transport
TLSClientConfig: &tls.ConfigInsecureSkipVerify: true,
,
但这只会忽略错误的证书。
prometheus 端点为 https 时我得到的错误是:
http: 服务器给 HTTPS 客户端 HTTP 响应
【问题讨论】:
错误恕我直言,意味着您正在访问 https:// 端点(因此您的 golang 客户端需要 HTTPS 流量)但服务器在 HTTPS 端口上提供 HTTP... 【参考方案1】:一般不能忽略“无效的 TLS”。 TLS 握手包括证书的本地验证,可以使用InsecureSkipVerify
禁用。但是,如果对方根本不说 TLS,例如 “服务器向 HTTPS 客户端提供 HTTP 响应”,则不能忽略这一点。这就像客户端说英语而服务器说西班牙语一样 - 不能简单地忽略两者无法相互理解并继续通信。
【讨论】:
以上是关于如何忽略无效的 TLS的主要内容,如果未能解决你的问题,请参考以下文章
警告:忽略无效的分发 -ip (c:\python39\lib\site-packages) 我该如何解决这个问题,这是啥意思? [复制]