gopkg.inからcloneしようとするとUnknown SSL protocol error in connection to gopkg.in:-9838が発生する

Oct 27, 2017

起こったこと

goのyamlパッケージがgo getで取得できない。

環境は以下:

  • Mac: 10.12.5 (16F73)
  • go: go1.9.1 darwin/amd64
  • git: 最初のエラー発生時に確認していないが多分2系

gopkg.in経由でcloneする際に以下のエラーが発生する:

$ go get github.com/gernest/utron
 cd .; git clone https://gopkg.in/yaml.v2 /Users/user/go/src/gopkg.in/yaml.v2
Cloning into '/Users/user/go/src/gopkg.in/yaml.v2'...
fatal: unable to access 'https://gopkg.in/yaml.v2/': Unknown SSL protocol error in connection to gopkg.in:-9838
package gopkg.in/yaml.v2: exit status 128

試したが解決しなかったこと

gopkgのIssuesでいくつか解決したよ報告があったので以下を試してみた。結果私の環境では解決しなかった…

1. gitの設定でsslVerifyをtrueにする

Unknown SSL protocol error in connection to gopkg.in:-9838 · Issue #49 · niemeyer/gopkg

$ git config --global http.sslVerify true

2. gitの再インストール

Unknown SSL protocol error in connection to gopkg.in:-9838 · Issue #49 · niemeyer/gopkg

$ brew reinstall openssl && brew reinstall git --with-openssl

結論: gopkg.inを使わずにyamlパッケージを取得

上記の方法では解決しなかったため、gopkg.inを使わずにyamlパッケージを取得した。

Unknown SSL protocol error in connection to gopkg.in:-9838 · Issue #49 · niemeyer/gopkg

$ git clone -b v2 git@github.com:go-yaml/yaml.git $GOPATH/src/gopkg.in/yaml.v2

結果再度go getで依存パッケージも取得できた。

$ go get github.com/gernest/utron

github.com/cznic/mathutil
github.com/cznic/golex/lex
github.com/cznic/fileutil

# 省略

Unknown SSL protocol error in connection to gopkg.in:-9838 · Issue #49 · niemeyer/gopkg

このコメントによるとgopkg.inはSNIをサポートしていないクライアント(Mac環境のGit?)に対応していないためこのようなエラーが発生しているとのこと。

homebrewでopensslを使うgitを再インストールしたつもりだったんだけどうまく動いていない?

時間もなかったので深追いしていない…。

Retrun to top