Windows XP で Golang HTTP リクエストが「x509: 不明な機関によって署名された証明書」で失敗するのはなぜですか?

Barbara Streisand
リリース: 2024-11-11 20:03:03
オリジナル
246 人が閲覧しました

Why Does My Golang HTTP Request Fail with

Windows XP での Golang HTTP x509 の証明書検証エラー

問題:

実行時Windows XP で Golang 1.9.2 を使用しているクライアント アプリでは、証明書が有効で信頼できる機関によって署名されている場合でも、HTTP GET および POST リクエスト中に「x509: 不明な機関によって署名された証明書」というエラーが発生します。

背景:

このエラーは、検証に必要な中間証明書がホスト システムの証明書ストアにインストールされていないため、クライアントがサーバーの証明書チェーンを検証できない場合に発生します。

試行された解決策:

問題を解決するために、ユーザーは他のソースからのアドバイスに基づいて次のコードを実装しました:

tr := &http.Transport{
    TLSClientConfig: &tls.Config{InsecureSkyVerify: true},
}
ログイン後にコピー

ただし、この解決策は正しくありませんフィールド名は「InsecureSkyVerify」ではなく「InsecureSkipVerify」です。

正しい解決策:

正しい実装は次のようになります:

tr := &http.Transport{
    TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
ログイン後にコピー

警告:

「InsecureSkipVerify」を使用するとサーバー証明書の検証とホスト名のチェックが無効になるため、使用する場合は注意してください。これにより、クライアントは中間者攻撃などのセキュリティ リスクにさらされる可能性があります。安全な接続のために、カスタム検証、または「VerifyConnection」または「VerifyPeerCertificate」を使用することをお勧めします。

以上がWindows XP で Golang HTTP リクエストが「x509: 不明な機関によって署名された証明書」で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート