Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menyediakan HTTP Secure Transport Protocol (SSL/TLS) menggunakan Golang?

Bagaimana untuk menyediakan HTTP Secure Transport Protocol (SSL/TLS) menggunakan Golang?

WBOY
WBOYasal
2024-06-03 12:09:571055semak imbas

Cara menyediakan HTTP Secure Transport Protocol (SSL/TLS) untuk menjana sijil yang ditandatangani sendiri di Golang. Konfigurasikan konfigurasi TLS pelayan HTTP Golang, termasuk sijil dan kunci. Buat pelayan HTTP dengan konfigurasi TLS.

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

Cara untuk menyediakan HTTP Secure Transport Protocol (SSL/TLS) di Golang

Pengenalan

Melindungi trafik web daripada mencuri dengar, dan perkara penting/penting SSL ini . Tutorial ini akan membimbing anda tentang cara menyediakan SSL/TLS di Golang untuk menjamin sambungan HTTP anda.

Jana Sijil Ditandatangani Sendiri

Memandangkan terdapat bayaran untuk sijil yang dikeluarkan oleh Pihak Berkuasa Sijil (CA), menghasilkan sijil yang ditandatangani sendiri adalah pilihan yang berdaya maju untuk tujuan pembangunan dan ujian. Sijil yang ditandatangani sendiri boleh dijana menggunakan arahan berikut:

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

Ingat, sijil yang ditandatangani sendiri hanya dipercayai dalam domain atau persekitaran anda sendiri dan oleh itu tidak sesuai untuk persekitaran pengeluaran.

Konfigurasikan pelayan HTTP Golang

Selepas mencipta sijil yang ditandatangani sendiri, anda boleh mengkonfigurasi SSL/TLS dalam pelayan 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("", "")
}

Kes praktikal

Biar kami menjalankan pelayan HTTP Golang/ HTTP yang mudah Cara TLS berfungsi:

  1. Jalankan arahan berikut dalam terminal untuk menjana sijil yang ditandatangani sendiri:

    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
  2. Buat fail Go yang dipanggil server.go dengan kod berikut di dalamnya: 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
🎜Jalankan pelayan: 🎜rrreee🎜🎜 Akses pelayan anda dalam penyemak imbas anda menggunakan protokol HTTPS selamat (cth. https://localhost:443). Jika disediakan dengan betul, anda harus melihat "Helo, HTTPS!" 🎜🎜

Atas ialah kandungan terperinci Bagaimana untuk menyediakan HTTP Secure Transport Protocol (SSL/TLS) menggunakan Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn