Я разработчик на стороне клиента (Unity / C #), и у меня есть API, для которого требуется SSL-сертификат при подключении. У меня есть этот сертификат (.pfx).
Когда я пытаюсь сделать запрос классом HttpWebRequest (код прослушивается ниже), у меня возникает ошибка (код 400: неверный запрос, не был отправлен обязательный сертификат SSL). Есть идеи, как это сделать?
Когда я помещаю свой URL в браузер, у меня появляется всплывающее окно, которое запрашивает сертификат, и я могу предоставить сертификат там, и тогда у меня есть результат!
Может быть, мне нужно использовать Stream из запроса?
Вот как выглядит запрос в Инспекторе:
void Connect() {
// I think it is not necessary
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(ValidateServerCertificate);
// certificate creation
certificate = new X509Certificate2(path, pass);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
// adding certificate to request
request.ClientCertificates.Add(certificate);
request.Method = "GET";
request.AuthenticationLevel = AuthenticationLevel.MutualAuthRequested;
request.Accept = "application/json";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
}
public static bool ValidateServerCertificate(
object sender,
System.Security.Cryptography.X509Certificates.X509Certificate certificate,
X509Chain chain,
System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
return true;
}