我正在为无法查询 DNS 的设备编写一些代码。我将只有端口 80 和 443 可用。
以下工作,但当然命中DNS。使用的域是我的个人域,而不是问题所针对的真实域 - 它与工作相关并经过编辑。这只是用来说明问题。
package main
import (
“log”
“net/http”
)
func main() {
client := &http.Client{}
req, err := http.NewRequest(“GET”, “https://donatstudios.com/images/Spacecat/spacecat.svg”, nil)
if err != nil {
log.Fatal(err)
}
_, err = client.Do(req)
if err != nil {
log.Fatal(err)
}
log.Fatal(“no errors”)
}
我更改代码以命中特定的 IP 地址 ala:
package main
import (
“log”
“net/http”
)
func main() {
client := &http.Client{}
req, err := http.NewRequest(“GET”, “https://162.243.23.224/images/Spacecat/spacecat.svg”, nil)
if err != nil {
log.Fatal(err)
}
req.Host = “donatstudios.com”
_, err = client.Do(req)
if err != nil {
log.Fatal(err)
}
log.Fatal(“no errors”)
}
现在收到“无法验证 162.243.23.224 的证书,因为它不包含任何 IP SAN”
当不使用 https 域时,上述代码有效。
大概这与 SSL 有关。#go-nuts 告诉我他们相信这会在它到达 HTTP 层之前发生?我已经戳了好几个小时了,不知道如何让它工作。
回首忆惘然
相关分类