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

WBOY
Lepaskan: 2024-06-03 12:09:57
asal
1055 orang telah melayarinya

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
Salin selepas log masuk
Salin selepas log masuk

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("", "")
}
Salin selepas log masuk

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
    Salin selepas log masuk
    Salin selepas log masuk
  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")
    }
    Salin selepas log masuk
  3. 运行服务器:

    go run server.go
    Salin selepas log masuk
  4. 在浏览器中使用安全的 HTTPS 协议(例如 https://localhost:443rrreee
  5. 🎜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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!