Mewujudkan Sambungan TLS dengan Sijil Ditandatangani Sendiri
Apabila mewujudkan sambungan TLS menggunakan sijil yang ditandatangani sendiri, adalah penting untuk mengkonfigurasi pelanggan dengan betul dan bahagian pelayan untuk mengelakkan ralat berkaitan sijil.
Pelanggan Pertimbangan
Kod pelanggan harus menambahkan sijil pelayan yang ditandatangani sendiri pada kumpulan CAnya. Kumpulan ini mengandungi sijil yang dipercayai oleh pelanggan. Dengan menambahkan sijil pelayan pada kumpulan, pelanggan mempercayainya dengan berkesan.
Ini boleh dicapai menggunakan struktur tls.Config, seperti yang ditunjukkan dalam coretan kod yang disediakan:
CA_Pool := x509.NewCertPool() serverCert, err := ioutil.ReadFile("./cert.pem") if err != nil { log.Fatal("Could not load server certificate!") } CA_Pool.AppendCertsFromPEM(severCert) config := tls.Config{RootCAs: CA_Pool}
Pertimbangan Pelayan
Untuk sijil yang ditandatangani sendiri, pelayan mesti mempunyai sijil yang sama ditambah seperti CA akarnya sendiri. Ini memastikan pelayan diberi kuasa untuk mengeluarkan sijil kepada dirinya sendiri.
Untuk mencapai ini, gunakan coretan kod berikut:
cert, err := tls.LoadX509KeyPair("./cert.pem", "./key.pem") config := tls.Config{Certificates: []tls.Certificate{cert}}
Kesilapan Biasa
Kesilapan biasa apabila menjana sijil yang ditandatangani sendiri ialah tidak menetapkan bendera IsCA. Bendera ini menunjukkan bahawa sijil boleh digunakan sebagai CA. Tanpa bendera ini, sijil mungkin gagal untuk mengesahkan tandatangannya sendiri.
Kod yang betul harus mengandungi yang berikut:
x509.CreateCertificate(&opts, &opts, &rootTemplate, rootKey)
Dengan menetapkan bendera IsCA, sijil yang ditandatangani sendiri akan dijana dengan betul dan pelanggan akan dapat mengesahkan rantaian sijil pelayan dengan jayanya.
Atas ialah kandungan terperinci Bagaimana untuk Mengkonfigurasi Sambungan TLS Dengan Betul Menggunakan Sijil Ditandatangani Sendiri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!