Ralat Pengesahan Sijil dalam Windows XP untuk Golang HTTP x509
Masalah:
Apabila berjalan apl pelanggan menggunakan Golang 1.9.2 pada Windows XP, pengguna menghadapi ralat "x509: sijil ditandatangani oleh pihak berkuasa yang tidak diketahui" semasa permintaan HTTP GET dan POST, walaupun sijil itu sah dan ditandatangani oleh pihak berkuasa yang dipercayai.
Latar Belakang:
Ralat ini berlaku apabila pelanggan tidak dapat mengesahkan rantai sijil pelayan kerana sijil perantaraan yang diperlukan untuk pengesahan tidak dipasang dalam stor sijil sistem hos.
Percubaan Penyelesaian:
Untuk menyelesaikan isu tersebut, pengguna melaksanakan kod berikut berdasarkan nasihat daripada sumber lain:
tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkyVerify: true}, }
Walau bagaimanapun, penyelesaian ini tidak betul , kerana nama medan ialah "InsecureSkipVerify" dan bukannya "InsecureSkyVerify".
Penyelesaian Betul:
Pelaksanaan yang betul hendaklah:
tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }
Amaran:
Sila berhati-hati apabila menggunakan "InsecureSkipVerify" kerana ia melumpuhkan pengesahan sijil pelayan dan semakan nama hos. Ini boleh mendedahkan pelanggan kepada risiko keselamatan, seperti serangan man-in-the-middle. Adalah disyorkan untuk menggunakan pengesahan tersuai atau "VerifyConnection" atau "VerifyPeerCertificate" untuk sambungan yang selamat.
Atas ialah kandungan terperinci Mengapa Permintaan HTTP Golang Saya Gagal dengan 'x509: sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui' pada Windows XP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!