Нужно ли мне выполнять выдачу сертификата после того, как я аутентифицирован с помощью сертификата клиента? Может кто-то объяснить это мне?Проверка сертификата клиента в сочетании с фиксацией сертификата
if (challenge.ProtectionSpace.AuthenticationMethod == NSUrlProtectionSpace.AuthenticationMethodClientCertificate)
{
Console.WriteLine("Client Cert!");
var options = NSDictionary.FromObjectAndKey(NSObject.FromObject(This._passphrase), SecImportExport.Passphrase);
NSDictionary[] importResult;
if (This?._certificate == null) return;
if (This?._passphrase == null) return;
var x509Certificate = new X509Certificate(This._certificate, This._passphrase);
SecStatusCode statusCode = SecImportExport.ImportPkcs12(This._certificate, options, out importResult);
var identityHandle = importResult[0][SecImportExport.Identity];
var identity = new SecIdentity(identityHandle.Handle);
var certificate = new SecCertificate(x509Certificate.GetRawCertData());
SecCertificate[] certificates = { certificate };
NSUrlCredential credential = NSUrlCredential.FromIdentityCertificatesPersistance(identity, certificates, NSUrlCredentialPersistence.ForSession);
completionHandler(NSUrlSessionAuthChallengeDisposition.UseCredential, credential);
return;
}
*Logic for SSL Pinning*
Поскольку возврат Постулаты после «ClientCertificate запроса и клиента аутентификации» частей, логика для сертификатов пиннинга никогда не будет выполнена, так я спрашивал себя, если эта часть obsolet после выполнения аутентификации с клиентом сертификат.
Спасибо за объяснение. Я решил проблему через 2-3 часа поиска, не имея возможности отлаживать ... метод, называемый DidReciveResponse, дважды вызывается дважды для сертификата клиента и второй раз для сертификата сервера. –