Golang HTTP x509: 証明書の不明な権限に関するエラー
最近、バックエンド システムにアクセスしようとすると、問題が発生することがありました。 Windows XP で Golang 1.9.2 を使用します。 Windows や Linux などの最新のオペレーティング システムでは問題なく機能するにもかかわらず、Windows XP でコードを実行しているユーザーは次のエラーに遭遇しました: 「x509: 不明な機関によって署名された証明書。」
Firefox ESR と Firefox ESR を使用したブラウザベースのテストChromium ブラウザでは、同じ Windows XP 環境から同じ URL にアクセスしても、証明書関連の問題が発生しないことが明らかになりました。特に、影響を受ける SSL 証明書は有効なままであり、信頼できる認証局によって署名されています。
一部の個人は、InsecureSkipVerify パラメーターを使用して TLS 検証をオーバーライドすることで、この問題の解決を試みています。
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 検証のオーバーライドは、テスト目的でのみ、または厳格なカスタム検証対策と組み合わせて検討する必要があることに注意してください。
以上がWindows XP 上の Golang 1.9.2 では「x509: 不明な機関によって署名された証明書」が報告されるのに、ブラウザでは報告されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。