"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que o Golang 1.9.2 no Windows XP relata “x509: certificado assinado por autoridade desconhecida” enquanto os navegadores não o fazem?

Por que o Golang 1.9.2 no Windows XP relata “x509: certificado assinado por autoridade desconhecida” enquanto os navegadores não o fazem?

Publicado em 17/11/2024
Navegar:446

Why Does Golang 1.9.2 on Windows XP Report

Golang HTTP x509: Erro em relação à autoridade desconhecida para certificados

No passado recente, indivíduos encontraram desafios ao tentar acessar seus sistemas de back-end usando Golang 1.9.2 no Windows XP. Apesar de funcionar perfeitamente em sistemas operacionais mais modernos, como Windows e Linux, os usuários que executam seu código no Windows XP encontraram o seguinte erro: "x509: certificado assinado por autoridade desconhecida."

Testes baseados em navegador usando Firefox ESR e Os navegadores Chromium revelaram que não levantavam problemas relacionados a certificados ao acessar a mesma URL no mesmo ambiente Windows XP. Notavelmente, o certificado SSL afetado permanece válido e é assinado por uma autoridade de certificação confiável.

Algumas pessoas tentaram resolver esse problema substituindo a validação TLS usando o parâmetro 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/")

No entanto, este método se mostrou ineficaz. É crucial observar que a substituição da validação TLS deve ser abordada com cautela, pois expõe o aplicativo a ameaças potenciais, como ataques man-in-the-middle.

Se você estiver enfrentando o mesmo problema, certifique-se de que está enfrentando o mesmo problema. configurou o parâmetro InsecureSkipVerify corretamente. Você pode ter definido inadvertidamente como "InsecureSkyVerify". Aqui está o trecho de código correto:

// 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
}

Lembre-se de que a substituição da validação TLS só deve ser considerada para fins de teste ou em conjunto com medidas rigorosas de verificação personalizada.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3