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) } }
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 :
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
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
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!