Windows XP 上の Golang HTTP クライアントでの TLS 検証エラー
クライアント アプリケーションの作成に Golang 1.9.2 を利用する場合、バックエンドへのアクセスで問題が発生する可能性がありますWindows XP システムの場合。具体的には、HTTP リクエスト中に「x509: 不明な機関によって署名された証明書」などのエラーが発生します。
このエラーは、Windows XP 上の Golang で使用されている古い TLS 証明書検証方法が原因であると考えられます。 Firefox ESR や Chromium などのブラウザは証明書を受け入れますが、Golang クライアントには追加の構成が必要です。
一般的な解決策: TLS 検証をバイパスする
1 つの一般的な解決策は、TLS 検証をバイパスすることです。 tls.Config 構造で InsecureSkipVerify を true に設定します。ただし、この方法では、サーバー証明書の検証が無効になり、特定の状況ではクライアントが脆弱になるため、注意して使用する必要があります。
この特定の状況では、tls.Config 構造内のフィールド名が間違っているためにエラーが発生します。 。提供されたコードには、InsecureSkipVerify の代わりに InsecureSkyVerify が含まれています。
修正コード:
tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }
推奨アプローチ
TLS をバイパスする場合検証は実行できません。代替解決策はオペレーティング システムを更新することです標準の証明書検証をサポートするより新しいバージョンに更新します。古いシステムを使用すると、セキュリティ上の脆弱性が生じ、アプリケーションの互換性が制限されます。
結論
Windows XP での TLS 証明書検証の問題を解決するには、InsecureSkipVerify を使用して検証をバイパスすることをお勧めします。慎重に行うか、適切な検証をサポートするためにオペレーティング システムをアップグレードしてください。各オプションのセキュリティへの影響を慎重に考慮する必要があります。
以上がWindows XP で Golang HTTP クライアントで「x509: 不明な機関によって署名された証明書」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。