WebRequest を使用した HTTPS 暗号化サイトへのアクセス
問題:
コンテンツを取得するプログラム内ユーザーが提供した URL から、HTTPS で暗号化されたコンテンツにアクセスしようとする試み失敗し、エラーが発生します。
解決策:
この問題は、SSL 証明書を検証し、無効な証明書を持つサイトへの接続を拒否する WebRequest のデフォルトの動作によって発生します。証明書の有効性に関係なく、コードが HTTPS で暗号化されたコンテンツにアクセスできるようにするには、Web リクエストを行う前に次のコードを使用して証明書の検証を無効にします:
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
AcceptAllCertifications の定義:
AcceptAllCertifications メソッドは次のように定義されています。
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; }
このコールバックを設定すると、WebRequest にすべての証明書を受け入れるよう指示し、証明書の検証を効果的に無効にします。これにより、証明書が無効であっても、プログラムは HTTPS で暗号化されたコンテンツにアクセスできるようになります。
以上がWebRequest を使用して無効な証明書を持つ HTTPS サイトにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。