0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[go環境構築] go get でのTLS handshake error

Posted at

#はじめに
ローカルでのGo開発環境構築にあたりGo Moduleを利用したいと思っていました。
いろいろと設定を施しgo getで外部モジュール取ろうとした際にTLS Handshakeエラーにぶつかったのでその時の対応を備忘録として残します。
注)開発初心者が初めて構築しようとしているので優しく見てやってください。

実施環境

項目 -
OS Windows10
ターミナル Git Bash
ネット環境 社内Network(Proxy経由)
Golang Ver. 1.17.2

エラー内容

下記コマンド実行でfirst record does not look like a TLS handshakeのエラーが出ました。
(たまにDockerなどで見ることがあるような・・・)

$ go get github.com/spiegel-im-spiegel/errs
go get: module github.com/spiegel-im-spiegel/errs: Get "https://proxy.golang.org/github.com/spiegel-im-spiegel/errs/@v/list": proxyconnect tcp: tls: first record does not look like a TLS handshake

原因

原因としては下記2つありました。

①HTTPS_PROXYの変数名に誤りがあった

Go getなどのGoで使われるProxyはbashで設定した内容が使われるため、Bashのグローバル変数にProxyの設定はしたもののどうやら大文字/小文字の変数名定義が誤っており正しく設定できていませんでした。
Bashで使うProxy設定の変数名は大文字です。
■BAD
export https_proxy="https://example.com:8080"
■GOOD
export HTTPS_PROXY="https://example.com:8080"

②値が間違っていた(https://~ => http://~)

Dockerでも同じ罠にはまっておきながらまた繰り返しミスをしていました。
HTTPS用プロキシだからと言ってhttps://~と設定してしまいがちですが、
正しくはHTTP用プロキシ同様に**http://~**で設定しましょう。

おわり

なんとか上記対応でgo getできるようになりました!!
ですがgo getが非推奨になろうとしている中、こんなことをやってるなんて馬鹿げていましたね。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?