Rumah > pembangunan bahagian belakang > Golang > Mengapa Sambungan TLS Saya Gagal dengan Sijil Ditandatangani Sendiri dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Sambungan TLS Saya Gagal dengan Sijil Ditandatangani Sendiri dan Bagaimana Saya Boleh Membetulkannya?

Mary-Kate Olsen
Lepaskan: 2024-12-19 15:58:17
asal
750 orang telah melayarinya

Why Does My TLS Connection Fail with a Self-Signed Certificate and How Can I Fix It?

Menyelesaikan Masalah Sambungan TLS dengan Sijil Ditandatangani Sendiri

Isu: Mewujudkan sambungan TLS menggunakan pelayan yang ditandatangani sendiri sijil gagal dengan ralat menunjukkan sijil yang tidak diketahui pihak berkuasa.

Kod Berkaitan:
Pelanggan:

CA_Pool := x509.NewCertPool()
severCert, err := ioutil.ReadFile("./cert.pem")
CA_Pool.AppendCertsFromPEM(severCert)

config := tls.Config{RootCAs: CA_Pool}
Salin selepas log masuk

Pelayan:

cert, err := tls.LoadX509KeyPair("./cert.pem", "./key.pem")
config := tls.Config{Certificates: []tls.Certificate{cert}}
Salin selepas log masuk

Ralat Mesej:

client: dial: x509: certificate signed by unknown authority 
(possibly because of "x509: invalid signature: parent certificate
cannot sign this kind of certificate" while trying to verify 
candidate authority certificate "serial:0")
Salin selepas log masuk

Punca Punca:
Sijil yang ditandatangani sendiri yang dihasilkan tidak mempunyai set bendera IsCA, yang menunjukkan bahawa ia bukan sijil perantaraan atau akar . Akibatnya, Kumpulan CA pelanggan tidak dapat mengesahkan sijil yang ditandatangani sendiri sebagai pihak berkuasa yang sah.

Penyelesaian:
Untuk membetulkan isu ini, pastikan bendera IsCA adalah ditetapkan apabila menjana sijil yang ditandatangani sendiri menggunakan x509.CreateCertificate. Kod yang betul untuk penjanaan sijil adalah seperti berikut:

certTemplate := &x509.Certificate{
    IsCA: true,
    KeyUsage: x509.KeyUsageCertSign,
    // ... other certificate parameters
}
Salin selepas log masuk

Dengan menetapkan IsCA:true, sijil yang ditandatangani sendiri boleh berfungsi dengan betul sebagai pihak berkuasa sijil, membolehkan pelanggan mengesahkan kesahihannya.

Atas ialah kandungan terperinci Mengapa Sambungan TLS Saya Gagal dengan Sijil Ditandatangani Sendiri dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan