Что я пытаюсь сделать:
Построить пакет (позднее использование), который предоставляет метод для выполнения запроса get на любую страницу через данный прокси-сервер socks5.
Моя проблема:
Когда я пытаюсь запросить страницу с SSL (https), я получаю следующую ошибку:
Ошибка при выполнении запроса Получить https://www.xxxxxxx.com: socks connect tcp 83.234.8.214:4145->www.xxxxxxx.com:443: EOF
Однако запрос http://www.google.com
работает нормально.Таким образом, должна быть проблема с соединением SSL.Не могу представить, почему это не работает, так как я не очень разбираюсь в SSL-соединениях.End of file
не имеет смысла для меня.
Мой текущий код:
func main() {
// public socks5 - worked when I created this question
proxy_addr := "83.234.8.214:4145"
// With this address I get the error
web_addr := "https://www.whatismyip.com"
// Requesting google works fine
//web_addr := "http://www.google.com"
dialer, err := proxy.SOCKS5("tcp", proxy_addr, nil, proxy.Direct)
handleError(err, "error creating dialer")
httpTransport := &http.Transport{}
httpClient := &http.Client{Transport: httpTransport}
httpTransport.DialTLS = dialer.Dial
req, err := http.NewRequest("GET", web_addr, nil)
handleError(err, "error creating request")
httpClient.Timeout = 5 * time.Second
resp, err := httpClient.Do(req)
handleError(err, "error executing request")
defer resp.Body.Close()
b, err := ioutil.ReadAll(resp.Body)
handleError(err, "error reading body")
fmt.Println(string(b))
}
func handleError(err error, msg string) {
if err != nil {
log.Fatal(err)
}
}
Так чего мне здесь не хватает, чтобы иметь дело с ssl-соединениями?
Большое спасибо.
Редактировать 1:
В случае, если кто-то подумает, что это проблема с whatismyip.com
Я сделалеще несколько тестов: