Vérifiez les certificats de serveur dans les requêtes HTTPS avec Golang
Lorsque vous accédez à des sites Web ou à des services HTTPS, votre application peut rencontrer des erreurs de certificat SSL si votre confiance locale store n'inclut pas l'autorité de certification (CA) qui a émis le certificat du serveur. Si vous souhaitez établir des connexions HTTPS sécurisées sans ignorer la vérification du certificat, cet article propose une solution utilisant la bibliothèque client HTTP de Go.
Pour ignorer la vérification du certificat et la désactiver, vous pouvez utiliser l'extrait de code suivant :
tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } client := &http.Client{Transport: tr}
Cependant, cette approche n'est pas recommandée pour les environnements de production car elle peut présenter un risque de sécurité.
Vérification du serveur Certificats
Pour vérifier les certificats de serveur, vous devez ajouter le certificat CA à votre configuration de transport. Vous trouverez ci-dessous un exemple :
package main 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) } }
Génération de certificats pour votre serveur
Si vous n'avez pas de certificat CA, vous pouvez en générer un avec un certificat pour votre serveur à l'aide des commandes suivantes :
openssl genrsa -out rootCA.key 4096 openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
openssl genrsa -out secure.domain.com.key 2048 openssl req -new -key secure.domain.com.key -out secure.domain.com.csr # In answer to question `Common Name (e.g. server FQDN or YOUR name) []:` you should set `secure.domain.com` (your real domain name) openssl x509 -req -in secure.domain.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -days 365 -out secure.domain.com.crt
En complétant ces étapes, vous disposerez d'un client HTTP configuré qui vérifie les certificats du serveur dans Go. Cela garantit une communication HTTPS sécurisée avec le serveur spécifié.
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!