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 サイトの他の関連記事を参照してください。