Maison  >  Article  >  développement back-end  >  Comment configurer le protocole HTTP Secure Transport Protocol (SSL/TLS) à l'aide de Golang ?

Comment configurer le protocole HTTP Secure Transport Protocol (SSL/TLS) à l'aide de Golang ?

WBOY
WBOYoriginal
2024-06-03 12:09:571004parcourir

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.

如何使用 Golang 设置 HTTP 安全传输协议(SSL/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 :

  1. 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
  2. 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")
    }
  3. 运行服务器:

    go run server.go
  4. 在浏览器中使用安全的 HTTPS 协议(例如 https://localhost:443rrreee
🎜Exécutez le serveur : 🎜rrreee🎜🎜 Accédez à votre serveur dans votre navigateur en utilisant le protocole sécurisé HTTPS (par exemple 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!

Déclaration:
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