«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему Golang 1.9.2 в Windows XP сообщает «x509: сертификат, подписанный неизвестным органом», а браузеры этого не делают?

Почему Golang 1.9.2 в Windows XP сообщает «x509: сертификат, подписанный неизвестным органом», а браузеры этого не делают?

Опубликовано 17 ноября 2024 г.
Просматривать:117

Why Does Golang 1.9.2 on Windows XP Report

Golang HTTP x509: ошибка относительно неизвестного органа для сертификатов

В недавнем прошлом люди сталкивались с проблемами при попытке получить доступ к своим серверным системам используя Golang 1.9.2 в Windows XP. Несмотря на безупречную работу в более современных операционных системах, таких как Windows и Linux, пользователи, запускающие свой код в Windows XP, столкнулись со следующей ошибкой: «x509: сертификат, подписанный неизвестным центром сертификации».

Тесты на основе браузера с использованием Firefox ESR и Браузеры Chromium показали, что эти браузеры не вызывают никаких проблем, связанных с сертификатами, при доступе к одному и тому же URL-адресу из одной и той же среды Windows XP. Примечательно, что затронутый сертификат SSL остается действительным и подписан доверенным центром сертификации.

Некоторые люди пытались решить эту проблему, переопределив проверку TLS с помощью параметра 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/")

Однако этот метод оказался неэффективным. Крайне важно отметить, что к переопределению проверки TLS следует подходить с осторожностью, поскольку это подвергает приложение потенциальным угрозам, таким как атаки «человек посередине».

Если у вас возникла такая же проблема, убедитесь, что вы правильно установили параметр InsecureSkipVerify. Возможно, вы случайно установили для него значение «InsecureSkyVerify». Вот правильный фрагмент кода:

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

Помните, что переопределение проверки TLS следует рассматривать только в целях тестирования или в сочетании со строгими пользовательскими мерами проверки.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3