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.
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:
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
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") }
运行服务器:
go run server.go
https://localhost:443
rrreee 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!