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 検証のオーバーライドは、テスト目的でのみ、または厳格なカスタム検証対策と組み合わせて検討する必要があることに注意してください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3