Maison > développement back-end > Golang > Comment gérer les requêtes HTTPS avec des certificats personnalisés ou non fiables dans Go ?

Comment gérer les requêtes HTTPS avec des certificats personnalisés ou non fiables dans Go ?

Mary-Kate Olsen
Libérer: 2024-12-11 12:05:10
original
596 Les gens l'ont consulté

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

Envoi de requêtes HTTPS avec des certificats dans Go

Lors de l'interaction avec des services HTTPS qui nécessitent une vérification de certificat, les développeurs peuvent rencontrer des erreurs liées à不知名的授权机构. Pour résoudre ce problème, Go fournit un mécanisme permettant de valider les certificats de serveur à l'aide de certificats CA de confiance.

Pour résoudre le problème, vous devez obtenir le certificat CA de l'autorité de confiance qui a émis le certificat de serveur. Une fois que vous disposez du certificat CA, vous pouvez l'ajouter à la couche de transport de votre client HTTP comme indiqué ci-dessous :

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)
    }
}
Copier après la connexion

De plus, vous pouvez générer un certificat CA personnalisé et signer vos propres certificats pour une communication sécurisée. Les étapes suivantes expliquent comment créer votre propre autorité de certification et votre propre certificat pour un domaine spécifique :

  1. Générer l'autorité de certification :

    openssl genrsa -out rootCA.key 4096
    openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
    Copier après la connexion
  2. Générer un certificat pour Domaine :

    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
    Copier après la connexion

En suivant ces étapes, vous pouvez vérifier les certificats du serveur et établir des connexions HTTPS sécurisées dans vos applications Go.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal