Heim > Backend-Entwicklung > Golang > Wie richte ich das HTTP Secure Transport Protocol (SSL/TLS) mit Golang ein?

Wie richte ich das HTTP Secure Transport Protocol (SSL/TLS) mit Golang ein?

WBOY
Freigeben: 2024-06-03 12:09:57
Original
1101 Leute haben es durchsucht

So richten Sie das HTTP Secure Transport Protocol (SSL/TLS) ein, um ein selbstsigniertes Zertifikat in Golang zu generieren. Konfigurieren Sie die TLS-Konfiguration des Golang-HTTP-Servers, einschließlich Zertifikate und Schlüssel. Erstellen Sie einen HTTP-Server mit TLS-Konfiguration.

如何使用 Golang 设置 HTTP 安全传输协议(SSL/TLS)?

So richten Sie das HTTP Secure Transport Protocol (SSL/TLS) in Golang ein

Einführung

Der Schutz des Webverkehrs vor Abhören und Manipulation ist von entscheidender Bedeutung, und SSL/TLS ist die Schlüsseltechnologie, mit der dieses Ziel erreicht wird . In diesem Tutorial erfahren Sie, wie Sie SSL/TLS in Golang einrichten, um Ihre HTTP-Verbindungen zu sichern.

Erstellen Sie ein selbstsigniertes Zertifikat

Da für von einer Zertifizierungsstelle (Certification Authority, CA) ausgestellte Zertifikate eine Gebühr anfällt, ist die Erstellung eines selbstsignierten Zertifikats eine praktikable Option für Entwicklungs- und Testzwecke. Ein selbstsigniertes Zertifikat kann mit dem folgenden Befehl generiert werden:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
Nach dem Login kopieren
Nach dem Login kopieren

Denken Sie daran, dass selbstsignierte Zertifikate nur innerhalb Ihrer eigenen Domäne oder Umgebung vertrauenswürdig sind und daher nicht für Produktionsumgebungen geeignet sind.

Konfigurieren Sie den Golang-HTTP-Server

Nachdem Sie das selbstsignierte Zertifikat erstellt haben, können Sie SSL/TLS im Golang-HTTP-Server konfigurieren:

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("", "")
}
Nach dem Login kopieren

Praktischer Fall

Lassen Sie uns einen einfachen Golang-HTTP-Server ausführen, um SSL/ So funktioniert TLS:

  1. Führen Sie den folgenden Befehl im Terminal aus, um ein selbstsigniertes Zertifikat zu generieren:

    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
    Nach dem Login kopieren
    Nach dem Login kopieren
  2. Erstellen Sie eine Go-Datei namens server.go mit dem folgenden Code darin: 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")
    }
    Nach dem Login kopieren
  3. 运行服务器:

    go run server.go
    Nach dem Login kopieren
  4. 在浏览器中使用安全的 HTTPS 协议(例如 https://localhost:443rrreee
  5. 🎜Führen Sie den Server aus: 🎜rrreee🎜🎜 Greifen Sie in Ihrem Browser über das sichere HTTPS-Protokoll (z. B. https://localhost:443) auf Ihren Server zu. Bei korrekter Einrichtung sollte die Meldung „Hallo, HTTPS!“ angezeigt werden. 🎜🎜

    Das obige ist der detaillierte Inhalt vonWie richte ich das HTTP Secure Transport Protocol (SSL/TLS) mit Golang ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage