Скажем, я хочу получить https://golang.org
программно. В настоящее время golang.org(ssl) имеет плохой сертификат, который выдается *.appspot.com
So, когда я запускаю это:
package main
import (
"log"
"net/http"
)
func main() {
_, err := http.Get("https://golang.org/")
if err != nil {
log.Fatal(err)
}
}
Я получаю (как и ожидалось)
Get https://golang.org/: certificate is valid for *.appspot.com, *.*.appspot.com, appspot.com, not golang.org
Теперь я хочу доверять этому сертификату самостоятельно (представьте себе самовыраженный сертификат, где я могу проверить отпечаток пальца и т.д.): как я могу сделать запрос и проверить/доверять сертификату?
Мне, вероятно, нужно использовать openssl для загрузки сертификата, загрузки его в файл и заполнения tls.Config
struct!?