[c#] https를 사용하여 SSL 암호화 사이트에 액세스하려면 WebRequest를 어떻게 사용합니까?

사용자가 제공 한 URL에서 콘텐츠를 읽는 프로그램을 작성 중입니다. 내 문제는 다음과 같은 코드에 있습니다.

Uri uri = new Uri(url);
WebRequest webRequest = WebRequest.Create(uri);
WebResponse webResponse = webRequest.GetResponse();
ReadFrom(webResponse.GetResponseStream());

제공된 URL 이 “https : //”URL 인 경우 이는 중단됩니다 . 누구든지 SSL 암호화 콘텐츠에서 작동하도록이 코드를 변경하는 데 도움을 줄 수 있습니까? 감사.



답변

올바른 방법으로 수행하고 있지만 사용자가 잘못된 SSL 인증서가 설치된 사이트에 URL을 제공 할 수 있습니다. 실제 웹 요청을하기 전에 다음 줄을 입력하면 이러한 인증서 문제를 무시할 수 있습니다.

ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(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;
}


답변

이 링크는 당신의 관심을 끌 것입니다 : http://msdn.microsoft.com/en-us/library/ds8bxk2a.aspx

http 연결의 경우 WebRequest 및 WebResponse 클래스는 SSL을 사용하여 SSL을 지원하는 웹 호스트와 통신합니다. SSL 사용 여부는 제공된 URI에 따라 WebRequest 클래스에서 결정합니다. URI가 “https :”로 시작하면 SSL이 사용됩니다. URI가 “http :”로 시작하면 암호화되지 않은 연결이 사용됩니다.


답변

이것은 나를 위해 일했습니다.

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;


답변