Cara Menghantar Permintaan HTTPs dengan Sijil dalam Go
Apabila membuat permintaan HTTPS kepada pelayan yang dijalankan pada port yang berbeza, ia adalah perkara biasa untuk menghadapi ralat berkaitan sijil. Ini berlaku kerana sijil pelayan ditandatangani oleh pihak berkuasa yang tidak diketahui dan klien HTTP lalai tidak mempercayai sijil yang ditandatangani sendiri.
Untuk menyelesaikan isu ini, kami perlu mengesahkan sijil pelayan secara manual menggunakan sijil CA yang sesuai . Berikut ialah panduan langkah demi langkah tentang cara untuk mencapainya dalam Go:
Dapatkan Sijil CA:
Buat Kumpulan Sijil:
Konfigurasikan Pilihan TLS:
Buat Pelanggan HTTP dengan Pengangkutan Tersuai:
Contoh Kod:
package main import ( "crypto/tls" "crypto/x509" "io/ioutil" "log" "net/http" ) func main() { // Read the CA certificate from file caCert, err := ioutil.ReadFile("rootCA.crt") if err != nil { log.Fatal(err) } // Create a certificate pool and add the CA cert caCertPool := x509.NewCertPool() caCertPool.AppendCertsFromPEM(caCert) // Configure TLS options tlsConfig := &tls.Config{ RootCAs: caCertPool, } // Create an HTTP client with custom transport client := &http.Client{ Transport: &http.Transport{ TLSClientConfig: tlsConfig, }, } // Send an HTTPs request _, err = client.Get("https://secure.domain.com") if err != nil { panic(err) } }
Nota:
Jika anda tidak mempunyai sijil CA, anda boleh mencipta sijil anda sendiri. Rujuk sumber luaran untuk arahan tentang cara menjana sijil yang ditandatangani sendiri.
Atas ialah kandungan terperinci Bagaimana untuk Membuat Permintaan HTTPS dengan Sijil Ditandatangani Sendiri dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!