Heim > Backend-Entwicklung > Golang > Wie gehe ich mit HTTPS-Anfragen mit benutzerdefinierten oder nicht vertrauenswürdigen Zertifikaten in Go um?

Wie gehe ich mit HTTPS-Anfragen mit benutzerdefinierten oder nicht vertrauenswürdigen Zertifikaten in Go um?

Mary-Kate Olsen
Freigeben: 2024-12-11 12:05:10
Original
597 Leute haben es durchsucht

How to Handle HTTPS Requests with Custom or Untrusted Certificates in Go?

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)
    }
}
Nach dem Login kopieren

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:

  1. CA generieren:

    openssl genrsa -out rootCA.key 4096
    openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
    Nach dem Login kopieren
  2. 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
    Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage