[英]Golang TLS handshake timeout, affecting go get and go code
Golang 不能再在我的 mac 上完成 TLS 握手(Catalina,但這個問題首先出現在 Mojave 上)。
我首先注意到這是由於go get
失敗而發生的:
unrecognized import path "golang.org/x/text": https fetch: Get "https://golang.org/x/text?go-get=1": net/http: TLS handshake timeout
但我也確認這也會影響 golang 代碼。 這是我希望工作的一個基本示例:
package main
import (
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://google.com")
fmt.Printf("%v, %v\n", resp, err)
}
如果我將此文件保存為main.go
並運行它,我會得到與從go get
看到的相同的錯誤:
<nil>, Get "https://google.com": net/http: TLS handshake timeout
我不知道哪里出錯了 - https 站點在我的瀏覽器上運行良好,當我使用 Python requests
package 時,可以正常訪問 ITLS 站點(或 curl 站點)。 似乎這是一個特定於go的失敗。
為了完整起見,這是go env
的 output :
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/nickchadwick/Library/Caches/go-build"
GOENV="/Users/nickchadwick/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/nickchadwick/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/l9/r8jjmhm13hvcpwppdt9sklm00000gn/T/go-build865222134=/tmp/go-build -gno-record-gcc-switches -fno-common"
任何有關解決此問題的提示將不勝感激! 無法go get
東西真是太可惜了。
在將其縮小到 macOS 問題后, 這解決了它:清理舊的鑰匙串訪問系統證書。
我遇到了類似的事情。 當我在沒有CGO_ENABLED
標志的情況下在 Mac 上構建二進制文件時,它似乎可以工作。 只需在構建期間添加CGO_ENABLED
就會導致此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.