Comment configurer le protocole HTTP Secure Transport Protocol (SSL/TLS) pour générer un certificat auto-signé dans Golang. Configurez la configuration TLS du serveur HTTP Golang, y compris les certificats et les clés. Créez un serveur HTTP avec une configuration TLS.
Comment configurer le protocole de transport sécurisé HTTP (SSL/TLS) dans Golang
Introduction
La protection du trafic Web contre les écoutes clandestines et la falsification est cruciale, et SSL/TLS est ce qui permet d'atteindre cet objectif technologies clés . Ce didacticiel vous guidera sur la façon de configurer SSL/TLS dans Golang pour sécuriser vos connexions HTTP.
Générer un certificat auto-signé
Étant donné que les certificats émis par une autorité de certification (CA) sont payants, la génération d'un certificat auto-signé est une option viable à des fins de développement et de test. Un certificat auto-signé peut être généré à l'aide de la commande suivante :
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
N'oubliez pas que les certificats auto-signés ne sont approuvés que dans votre propre domaine ou environnement et ne conviennent donc pas aux environnements de production.
Configurer le serveur HTTP Golang
Après avoir créé le certificat auto-signé, vous pouvez configurer SSL/TLS sur le serveur HTTP Golang :
package main import ( "crypto/tls" "fmt" "net/http" ) func main() { // 创建 TLS 配置 tlsConfig := &tls.Config{ Certificates: []tls.Certificate{ { // 读取生成的证书和密钥 Certificate: []byte("cert.pem"), PrivateKey: []byte("key.pem"), }, }, } // 使用 TLS 配置创建一个 HTTP 服务器 server := &http.Server{ Addr: ":443", TLSConfig: tlsConfig, } fmt.Println("正在启动 TLS HTTP 服务器...") server.ListenAndServeTLS("", "") }
Cas pratique
Exécutons un simple serveur HTTP Golang pour démontrer SSL/ Comment fonctionne TLS :
Exécutez la commande suivante dans le terminal pour générer un certificat auto-signé :
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
Créez un fichier Go appelé server.go
contenant le code suivant : server.go
的 Go 文件,其中包含以下代码:
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello, HTTPS!") }) fmt.Println("正在启动 HTTPS 服务器...") http.ListenAndServeTLS(":443", "cert.pem", "key.pem") }
运行服务器:
go run server.go
https://localhost:443
rrreee https://localhost:443
). Si la configuration est correcte, vous devriez voir le message « Bonjour, HTTPS ! » 🎜🎜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!