tkuchikiの日記

新ブログ https://blog.tkuchiki.net

Go の http.Get で証明書エラーが出るURL にリクエストを送ってもエラーが出ないようにする

検証した環境は Go 1.3 です。

http.Get, Post で、SSL 証明書エラーがでる URL にリクエストを送ると、
以下の様なエラーが出力されます。

2014/07/24 09:36:00 Post https://127.0.0.1: x509: cannot validate certificate for 127.0.0.1 because it doesn't contain any IP SANs

tls - The Go Programming Language を見ると、
Config struct の、InsecureSkipVerify に true を設定すれば良いと書いてあります。

ただ、SSL証明書の検証を skip しますので、使用には注意が必要です。
コメントにも、以下の様に書いてあります。

// This should be used only for testing.

最後に実装例を示します。

transport := &http.Transport{
    TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}

client := &http.Client{
    Transport: transport,
}

client.Get("https://127.0.0.1")