Senden von HTTPS-Anfragen mit Zertifikaten in Go
Bei der Interaktion mit HTTPS-Diensten, die eine Zertifikatsüberprüfung erfordern, können Entwickler auf Fehler im Zusammenhang mit 不知名的 stoßen授权机构. Um dieses Problem zu lösen, bietet Go einen Mechanismus zur Validierung von Serverzertifikaten mithilfe vertrauenswürdiger CA-Zertifikate.
Um das Problem zu lösen, müssen Sie das CA-Zertifikat der vertrauenswürdigen Behörde erhalten, die das Serverzertifikat ausgestellt hat. Sobald Sie das CA-Zertifikat haben, können Sie es wie unten gezeigt zur Transportschicht Ihres HTTP-Clients hinzufügen:
import ( "crypto/tls" "io/ioutil" "log" "net/http" "crypto/x509" ) func main() { caCert, err := ioutil.ReadFile("rootCA.crt") if err != nil { log.Fatal(err) } caCertPool := x509.NewCertPool() caCertPool.AppendCertsFromPEM(caCert) client := &http.Client{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{ RootCAs: caCertPool, }, }, } _, err := client.Get("https://secure.domain.com") if err != nil { panic(err) } }
Zusätzlich können Sie ein benutzerdefiniertes CA-Zertifikat generieren und Ihre eigenen Zertifikate für eine sichere Kommunikation signieren. Die folgenden Schritte beschreiben, wie Sie Ihre eigene Zertifizierungsstelle und Ihr eigenes Zertifikat für eine bestimmte Domäne erstellen:
CA generieren:
openssl genrsa -out rootCA.key 4096 openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
Zertifikat erstellen für Domäne:
openssl genrsa -out secure.domain.com.key 2048 openssl req -new -key secure.domain.com.key -out secure.domain.com.csr openssl x509 -req -in secure.domain.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -days 365 -out secure.domain.com.crt
Durch Befolgen dieser Schritte können Sie Serverzertifikate überprüfen und sichere HTTPS-Verbindungen in Ihren Go-Anwendungen herstellen.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit HTTPS-Anfragen mit benutzerdefinierten oder nicht vertrauenswürdigen Zertifikaten in Go um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!