我在尝试一些基本示例以向网络请求数据,但是对不同主机的所有请求都会导致SSL错误:x509: certificate signed by unknown authority
。 注意:我不是在代理后面,没有任何形式的证书拦截正在发生,因为使用卷曲或浏览器没有问题。x509由未知权威机构签名的证书
我目前正在使用的代码样本是:
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
包,这个问题得到了解决。
您的代码运行完全在我的本地机器上。你是直接在机器上还是在任何容器内运行? – sadlil
此代码在Ubuntu Docker容器内运行良好 –
我正在运行Arch Linux内核版本4.9.37-1-lts。代码在任何其他机器上工作正常,但不在此机器上。所有的 –