Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengendalikan Permintaan HTTPS dengan Sijil Tersuai atau Tidak Dipercayai dalam Go?
Menghantar Permintaan HTTPS dengan Sijil dalam Go
Apabila berinteraksi dengan perkhidmatan HTTPS yang memerlukan pengesahan sijil, pembangun mungkin menghadapi ralat yang berkaitan dengan不知名的授权机构. Untuk mengatasi isu ini, Go menyediakan mekanisme untuk mengesahkan sijil pelayan menggunakan sijil CA yang dipercayai.
Untuk menyelesaikan masalah, anda perlu mendapatkan sijil CA pihak berkuasa dipercayai yang mengeluarkan sijil pelayan. Sebaik sahaja anda mempunyai sijil CA, anda boleh menambahkannya pada lapisan pengangkutan klien HTTP anda seperti yang ditunjukkan di bawah:
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) } }
Selain itu, anda boleh menjana sijil CA tersuai dan menandatangani sijil anda sendiri untuk komunikasi yang selamat. Langkah berikut menggariskan cara membuat CA dan sijil anda sendiri untuk domain tertentu:
Jana CA:
openssl genrsa -out rootCA.key 4096 openssl req -x509 -new -key rootCA.key -days 3650 -out rootCA.crt
Jana Sijil untuk Domain:
openssl genrsa -out secure.domain.com.key 2048 openssl req -new -key secure.domain.com.key -out secure.domain.com.csr openssl x509 -req -in secure.domain.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -days 365 -out secure.domain.com.crt
Dengan mengikuti langkah ini, anda boleh mengesahkan sijil pelayan dan mewujudkan sambungan HTTPS selamat dalam aplikasi Go anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Permintaan HTTPS dengan Sijil Tersuai atau Tidak Dipercayai dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!