DNSを照会できないデバイス用のコードをいくつか作成しています。私はポート80と443しか利用できません。特定のIPからHTTPSアセットを取得し、DNSルックアップをスキップ
次のように動作しますが、もちろんDNSに当てはまります。使用されるドメインは私の個人的なドメインであり、実際のドメインではありません。それは仕事に関連して編集されたものです。これは単に問題を説明するために使用されます。
「それは任意のIP SANを含んでいないので、162.243.23.224のための証明書を検証することはできません」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”)
}
そして今受け取る:
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を打つために、コードを変更します
httpsドメインを使用しない場合上記のコードは機能します。
おそらく、これはSSLと関係があると思われます。 #go-nutsは、HTTPレイヤーに達する前にこれが起こると信じていましたか?私はこれを何時間も掘り下げてきており、それをいかに機能させるかを理解できません。
サーバーでSNI(https://en.wikipedia.org/wiki/Server_Name_Indication)を使用していますか? – Sean