はPeerCertificatesのみ、サーバーによって返された証明書が含まれて言います。 VerifiedChainsには、ローカル証明書ストア内の信頼できる証明書までのチェーンが含まれている必要があります(検証に成功したものとします)。
など。
client := &http.Client{}
resp, err := client.Get("https://www.microsoft.com")
if err != nil {
panic(err)
}
for _, cert := range resp.TLS.PeerCertificates {
fmt.Printf("Peer certificate \"%v\", ISSUED BY \"%v\"\n", cert.Subject.CommonName, cert.Issuer.CommonName)
}
for i, chain := range resp.TLS.VerifiedChains {
for _, cert := range chain {
fmt.Printf("Verified Chain %v Certificate \"%v\", ISSUED BY \"%v\"\n", i, cert.Subject.CommonName, cert.Issuer.CommonName)
}
}
そして、それは次のように表示されます:ここでは、簡単なサンプルコードスニペットがある
今
Peer certificate "www.microsoft.com", ISSUED BY "Symantec Class 3 Secure Server CA - G4"
Peer certificate "Symantec Class 3 Secure Server CA - G4", ISSUED BY "VeriSign Class 3 Public Primary Certification Authority - G5"
Verified Chain 0 Certificate "www.microsoft.com", ISSUED BY "Symantec Class 3 Secure Server CA - G4"
Verified Chain 0 Certificate "Symantec Class 3 Secure Server CA - G4", ISSUED BY "VeriSign Class 3 Public Primary Certification Authority - G5"
Verified Chain 0 Certificate "VeriSign Class 3 Public Primary Certification Authority - G5", ISSUED BY "VeriSign Class 3 Public Primary Certification Authority - G5"
、Microsoft証明書がシマンテック社とMicrosoftサーバーによって署名されたことに注意して両方の証明書を返します - 独自のとSymantecの証明書それに署名するのに使用されます。両方の証明書がピア証明書と検証済みチェーンの両方に表示されているのがわかります。しかし、シマンテックの証明書は一般にトラストストアには存在しませんが、コンピュータのトラストストアにあるルート証明書であるVeriSign証明書によって署名されています。検証済みチェーンには、この信頼できる証明書が含まれています。