2021年1月17日日曜日

go getでGitHub Enterprise Server上のパッケージを取得したら"connection refused"になる

原因を完全に把握できていないので、タイトルは不正確かもしれません。

イントラネットに構築した(つまり外部からアクセスできない)GitHub Enterprise Server上のGolangパッケージを取得しようとしたら"connection refused"メッセージが出ました。

エラーメッセージ

仮にリポジトリーのURLを"https://ghe.example.com/user/repository"、パッケージバージョンをv0.1.0とするとこんな感じ。

$ go get ghe.example.com/user/repository
go: downloading ghe.example.com/user/repository v0.1.0
go get ghe.example.com/user/repository: ghe.example.com/user/repository@v0.1.0: verifying module: ghe.example.com/user/repository@v0.1.0: reading https://sum.golang.org/lookup/ghe.example.com/user/repository@v0.1.0: 410 Gone
	server response: not found: ghe.example.com/user/repository@v0.1.0: unrecognized import path "ghe.example.com/user/repository": https fetch: Get "ghe.example.com/user/repository?go-get=1": dial tcp 192.168.0.1:443: connect: connection refused
$ 

ちなみにこのURLはHTTPS化もされています。オレオレ証明書でもないはず。

原因

最初に書いた通り、よくわかっていません。HTTPSまわりがクサいんですが、確定はできていません。

外部(github.comとか)にあるパッケージは普通にgo getできていますし、curl https://ghe.example.comを実行しても普通にレスポンスを取得できます。

姑息な対処

根本解決ではないんですが、-insecureオプションをつけると取得できることは確認済みです。

$ go get -insecure ghe.example.com/user/repository
go: downloading ghe.example.com/user/repository v0.1.0
go: ghe.example.com.com/user/repository upgrade => v0.1.0
$ 

このオプションをつけると取得できるということでやっぱりHTTPS周りがクサいです。

まあイントラネット上に構築してるからそこまで危険でもないだろうということでこの方法で運用しているんですが、なんかキモいのでいつか根本解決したい。

0 件のコメント:

コメントを投稿