Sahkan Sijil Pelayan dalam Permintaan HTTPS dengan Golang
Apabila mengakses tapak web atau perkhidmatan HTTPS, aplikasi anda mungkin menghadapi ralat sijil SSL jika kepercayaan setempat anda kedai tidak termasuk pihak berkuasa sijil (CA) yang mengeluarkan sijil pelayan. Jika anda ingin mewujudkan sambungan HTTPS selamat tanpa mengabaikan pengesahan sijil, artikel ini menyediakan penyelesaian menggunakan perpustakaan klien HTTP Go.
Untuk mengabaikan pengesahan sijil dan melumpuhkan pemeriksaan sijil, anda boleh menggunakan coretan kod berikut:
tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } client := &http.Client{Transport: tr}
Walau bagaimanapun, pendekatan ini tidak disyorkan untuk persekitaran pengeluaran kerana ia boleh menimbulkan keselamatan risiko.
Mengesahkan Sijil Pelayan
Untuk mengesahkan sijil pelayan, anda perlu menambah sijil CA pada konfigurasi pengangkutan anda. Di bawah ialah contoh:
package main import ( "crypto/tls" "io/ioutil" "log" "net/http" "crypto/x509" ) func main() { caCert, err := ioutil.ReadFile("rootCA.crt") if err != nil { log.Fatal(err) } caCertPool := x509.NewCertPool() caCertPool.AppendCertsFromPEM(caCert) client := &http.Client{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{ RootCAs: caCertPool, }, }, } _, err := client.Get("https://secure.domain.com") if err != nil { panic(err) } }
Menjana Sijil untuk Pelayan Anda
Jika anda tidak mempunyai sijil CA, anda boleh menjana sijil bersama-sama sijil untuk anda pelayan menggunakan arahan berikut:
openssl genrsa -out rootCA.key 4096 openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
openssl genrsa -out secure.domain.com.key 2048 openssl req -new -key secure.domain.com.key -out secure.domain.com.csr # In answer to question `Common Name (e.g. server FQDN or YOUR name) []:` you should set `secure.domain.com` (your real domain name) openssl x509 -req -in secure.domain.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -days 365 -out secure.domain.com.crt
Dengan melengkapkan langkah ini, anda akan mempunyai klien HTTP yang dikonfigurasikan yang mengesahkan sijil pelayan dalam Go. Ini memastikan komunikasi HTTPS selamat dengan pelayan yang ditentukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan Sijil Pelayan dalam Permintaan HTTPS Menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!