Golang HTTP x509: Ralat Berkenaan Pihak Berkuasa Tidak Diketahui untuk Sijil
Pada masa lalu, individu telah menghadapi cabaran apabila cuba mengakses sistem backend mereka menggunakan Golang 1.9.2 pada Windows XP. Walaupun berfungsi dengan sempurna pada sistem pengendalian yang lebih moden seperti Windows dan Linux, pengguna yang menjalankan kod mereka pada Windows XP mengalami ralat berikut: "x509: sijil yang ditandatangani oleh pihak berkuasa yang tidak diketahui."
Ujian berasaskan penyemak imbas menggunakan Firefox ESR dan Penyemak imbas Chromium mendedahkan bahawa penyemak imbas ini tidak menimbulkan sebarang isu berkaitan sijil apabila mengakses URL yang sama daripada persekitaran Windows XP yang sama. Terutama sekali, sijil SSL yang terjejas kekal sah dan ditandatangani oleh pihak berkuasa sijil yang dipercayai.
Sesetengah individu telah cuba menyelesaikan masalah ini dengan mengatasi pengesahan TLS menggunakan parameter InsecureSkipVerify:
import ("net/http"; "crypto/tls") tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } client := &http.Client{Transport: tr} resp, err := client.Get("https://someurl:443/")
Walau bagaimanapun, kaedah ini telah terbukti tidak berkesan. Adalah penting untuk ambil perhatian bahawa mengesampingkan pengesahan TLS harus didekati dengan berhati-hati kerana ia mendedahkan aplikasi kepada potensi ancaman seperti serangan man-in-the-middle.
Jika anda mengalami isu yang sama, pastikan anda telah menetapkan parameter InsecureSkipVerify dengan betul. Anda mungkin secara tidak sengaja menetapkannya kepada "InsecureSkyVerify." Berikut ialah coretan kod yang betul:
// NewAPIClient - creates a new API client func NewAPIClient() Client { c := &APIClient{} tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } c.client = &http.Client{Transport: tr} return c }
Ingat, mengesampingkan pengesahan TLS hanya perlu dipertimbangkan untuk tujuan ujian atau bersama-sama dengan langkah pengesahan tersuai yang ketat.
Atas ialah kandungan terperinci Mengapa Golang 1.9.2 pada Windows XP Melaporkan 'x509: sijil ditandatangani oleh pihak berkuasa yang tidak diketahui' Walaupun Pelayar Tidak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!