Maison > développement back-end > Golang > Comment vérifier les requêtes HTTPS à l'aide de certificats dans Go ?

Comment vérifier les requêtes HTTPS à l'aide de certificats dans Go ?

Barbara Streisand
Libérer: 2024-12-11 00:34:10
original
419 Les gens l'ont consulté

How to Verify HTTPS Requests Using Certificates in Go?

Vérification des demandes HTTPS à l'aide de certificats dans Go

Dans une application nécessitant une communication avec une API REST compatible HTTPS servie sur un port différent, il Il est courant de rencontrer des erreurs de validation SSL telles que « x509 : certificat signé par une autorité inconnue ». Cela se produit lorsque l'application ne reconnaît pas l'autorité de certification (CA) de l'API.

Pour résoudre ce problème, vous devez ajouter le certificat CA à la couche de transport de votre demande. Voici un extrait de code Go montrant comment procéder :

package main

import (
    "crypto/tls"
    "crypto/x509"
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    // Read the root CA certificate.
    caCert, err := ioutil.ReadFile("rootCA.crt")
    if err != nil {
        log.Fatal(err)
    }

    // Create a certificate pool from the CA certificate.
    caCertPool := x509.NewCertPool()
    caCertPool.AppendCertsFromPEM(caCert)

    // Configure the HTTP client with TLS settings.
    client := &http.Client{
        Transport: &http.Transport{
            TLSClientConfig: &tls.Config{
                RootCAs: caCertPool,
            },
        },
    }

    // Make a GET request to the HTTPS URL.
    resp, err := client.Get("https://secure.domain.com")
    if err != nil {
        log.Fatal(err)
    }

    // Process the HTTP response as usual.
    fmt.Println(resp.Status)
}
Copier après la connexion

Si vous n'avez pas créé d'autorité de certification pour signer vos certificats, voici quelques étapes pour vous guider :

Génération une 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

Génération d'un certificat pour Secure.domain.com signé avec l'AC :

openssl genrsa -out secure.domain.com.key 2048
openssl req -new -key secure.domain.com.key -out secure.domain.com.csr
Copier après la connexion

En réponse à la question "Nom commun (par exemple FQDN du serveur ou VOTRE nom) []:", saisissez "secure.domain.com" (votre nom de domaine réel) .

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

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