Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Golang 1.9.2 pada Windows XP Melaporkan "x509: sijil ditandatangani oleh pihak berkuasa yang tidak diketahui" Walaupun Pelayar Tidak?

Mengapa Golang 1.9.2 pada Windows XP Melaporkan "x509: sijil ditandatangani oleh pihak berkuasa yang tidak diketahui" Walaupun Pelayar Tidak?

DDD
DDDasal
2024-11-12 15:52:02568semak imbas

Why Does Golang 1.9.2 on Windows XP Report

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!

Kenyataan:
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