


Vérification du certificat HTTPS avec Golang
Lorsque vous effectuez des requêtes HTTPS vers des serveurs avec des certificats personnalisés, il est essentiel de vérifier leur authenticité pour garantir une communication sécurisée.
Dans l'un de ces scénarios, une application exécutée sur un port distinct rencontrait une erreur SSL lors d'une tentative d'accès à une API REST hébergée sur HTTPS. La cause de cette erreur était une autorité de certification non reconnue.
Pour résoudre ce problème, il est crucial d'ajouter l'autorité de certification au transport lors des requêtes HTTPS. L'extrait de code suivant montre comment y parvenir :
package main import ( "crypto/tls" "io/ioutil" "log" "net/http" "crypto/x509" ) func main() { // Read the root CA certificate from file caCert, err := ioutil.ReadFile("rootCA.crt") if err != nil { log.Fatal(err) } // Create an X.509 certificate pool and add the CA certificate caCertPool := x509.NewCertPool() caCertPool.AppendCertsFromPEM(caCert) // Configure the TLS client to trust the CA tlsConfig := &tls.Config{ RootCAs: caCertPool, } // Create a new HTTP client with the modified TLS configuration client := &http.Client{ Transport: &http.Transport{ TLSClientConfig: tlsConfig, }, } // Make an HTTPS request using the client _, err = client.Get("https://secure.domain.com") if err != nil { panic(err) } }
Alternativement, si aucun certificat d'autorité de certification préexistant n'est disponible, la solution suggère de générer votre propre autorité de certification et d'émettre des certificats signés par cette autorité de certification. Les commandes suivantes fournissent une approche étape par étape :
Génération de l'autorité de certification :
openssl genrsa -out rootCA.key 4096 openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
Génération du certificat pour secure.domain.com signé par l'autorité de certification :
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
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!

WHORSTINGGOCODEWITHINITFONCTIONS, USEZPLICITSETUPFUNCTIONSORSORSPARATETESTFILESTOAVOIDDEPENDENCYONINITFUNCTIONSIDEFFECTS.1) USEZPLICITSEUPFUNCTIONSTOCONTROLGLOBALVARIABIABLE INTIALISATION.2)

Go'SerrorHandlingReturnSerRorSasValues, contrairement à javaandpythonwhichuseexception.1) Go'smethodensuresexpliciterrorHandling, PromotingRobustCodeButincreingverbosity.2)

ANEFFICECTERACEINGOISMIMIMAL, CARY et PROMOTESLOOSECOUPLING.1) MINIMIZETHEITERFACEFLAXEBIBILITÉ ENFICATION

Le traitement des erreurs centralisés peut améliorer la lisibilité et la maintenabilité du code dans le langage Go. Ses méthodes et avantages d'implémentation incluent: 1. Séparer la logique de gestion des erreurs de la logique métier et simplifier le code. 2. Assurer la cohérence de la gestion des erreurs par manipulation centrale. 3. Utilisez un report et récupérer pour capturer et traiter les paniques pour améliorer la robustesse du programme.

Ingo, alternativestoinnitfunctionSincludCustomInitialization Manustres et Singletons.1) CustomInitialization Manustres aallowexplicit controlver

GohandlesInterfaces etTypeAssertionSEffectively, EnhancingCodeFlexibilityAndRobustness.1) TypeAssertionsallowruntimeTypeCHecking, asseenwithheshapeInterfaceandCirctleTy.2)

GO Language Les erreurs de la langue deviennent plus flexibles et lisibles via Errors.is et Errors. Comme fonctions. 1.Errors.is est utilisé pour vérifier si l'erreur est la même que l'erreur spécifiée et convient au traitement de la chaîne d'erreur. 2. ERRORS. As peut non seulement vérifier le type d'erreur, mais également convertir l'erreur en un type spécifique, ce qui est pratique pour extraire les informations d'erreur. L'utilisation de ces fonctions peut simplifier la logique de gestion des erreurs, mais faire attention à la livraison correcte des chaînes d'erreur et éviter une dépendance excessive pour éviter la complexité du code.

TomakeGoapplicationsRunfasterandMoreEfficiently, useProfilingTools, LeverageConcurrency et ManageMemoryEffective.1) useProfforcpuandMemoryProfilingtodentifyBottleneck


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP
