我正在尝试一些基本示例来请求网络数据,但是对不同主机的所有请求都会导致SSL错误:
我当前使用的代码示例是:
x509:证书由未知机构签名
。注意:我没有在代理后面,并且没有任何形式的证书拦截发生,因为使用curl或浏览器可以正常工作。我当前使用的代码示例是:
package main
import (
"fmt"
"net/http"
"io/ioutil"
"os"
)
func main() {
response, err := http.Get("https://google.com")
if err != nil {
fmt.Printf("%s\n", err)
os.Exit(1)
} else {
defer response.Body.Close()
contents, err := ioutil.ReadAll(response.Body)
if err != nil {
fmt.Printf("%s", err)
os.Exit(1)
}
fmt.Printf("%s\n", string(contents))
}
}
编辑:代码在Arch Linux内核4.9.37-1-lts上运行。
编辑2:显然,/etc/ssl/certs/ca-certificates.crt
与我的系统版本有所不同,通过(重新)移除证书并手动重新安装ca-certificates-utils
包,问题得以解决。
go-pingdom
包,并在 Dockeralpine:3.8
上运行。我在/etc/ssl/certs
下没有任何内容。我尝试安装RUN apk add --no-cache --virtual ca-certificates-utils
,但没有成功。 - Mazzy