我的情况是这样的:我正在向我的客户端应用程序手动验证Splunk实例的服务器证书。我用这种方法创建了一个新的httpclient包装器。有人可以向我确切解释我该怎么做吗?我的猜测是:1.没有指定IP地址作为CA; 2.尖叫出一些配置文件; 3.不知道
const SplunkPEM = `---BEGIN...jsldfjklsd---END`
func NewHttpClient() (*http.Client, error) {
rootcas := x509.NewCertPool()
ok := rootcas.AppendCertsFromPEM([]byte(SplunkPEM))
if !ok {
return http.DefaultClient, ErrString("Failed to parse PEM!")
}
conf := &tls.Config{
MinVersion: tls.VersionTLS12,
RootCAs: rootcas,
ServerName: "SplunkServerDefaultCert",
}
tr := &http.Transport{TLSClientConfig: conf}
client := &http.Client{Transport: tr}
return client, nil
}
错误1: 无法验证10.0.0.112的证书,因为它不包含任何IP SAN -所以我尝试更改
&tls.Config{
ServerName: "SplunkServerDefaultCert",
}
错误2: 证书对SplunkServerDefaultCert有效,对splunk.com无效
错误3: 证书无权签署其他证书