Abrufen des Client-Zertifikats für die gegenseitige Authentifizierung mit Swift 3 und Alamofire 4

10

Ich versuche herauszufinden, wie Alamofire 4.0 mit Swift 3.0 verwendet werden kann, um einen p12 (ich habe auch das PEM-Zertifikat und den Schlüssel, falls nötig) an eine Website zur Authentifizierung zu senden. Alle Beispiele, die ich gesehen habe, sind für Swift 2.0 und nicht genau das, wonach ich suche. In Safari auf meinem Mac kann ich auf die Seite zugreifen, indem ich den p12 in den Schlüsselanhänger stecke und ihn sende, wenn Safari fragt, damit ich weiß, dass dieser Teil funktioniert. Ich weiß nicht, ob mir jemand mit einem Beispiel in Alamofire 4.0 und Swift 3.0 in einer Anwendung helfen kann. Die Zertifikate sind auch selbst signiert.

Irgendwelche Gedanken oder Hilfe? Ich versuche nicht nur, das Zertifikat anzuheften, da der Client-Schlüssel und das Zertifikat zum Zugriff auf den Server gesendet werden müssen ...

    
Andrew Phillips 11.10.2016, 20:09
quelle

2 Antworten

9

Ich konnte es zur Arbeit bringen. Ein paar Probleme kamen in den Weg. Zuerst müssen Sie zulassen, dass IOS selbstsignierte Zertifikate akzeptiert. Dies erfordert das Einrichten von AlamoFire ServerTrustPolicy:

%Vor%

Von dort müssen Sie die SessionDidRecieveChallenge überschreiben, um das Client-Zertifikat zu senden. Da ich eine p12-Datei verwenden wollte, änderte ich Code, den ich an anderer Stelle gefunden hatte (Sorry, ich habe die Quelle nicht mehr), um Swift 3.0 zu verwenden, um den p12 mit Basisklassen zu importieren:

%Vor%

Dadurch kann ich die Datei importieren und sie an den Client zurücksenden.

%Vor%

Jetzt können Sie den SessionManager verwenden, um so viele Anrufe wie nötig zu erstellen.

Als eine Anmerkung habe ich auch das folgende in der info.plist hinzugefügt, um die neuen Sicherheitsfunktionen in neueren iOS-Features zu umgehen:

%Vor%

Ich hoffe, das hilft!

    
Andrew Phillips 03.11.2016, 18:10
quelle
3

Hier ist mein Beispiel, das jemandem helfen könnte (Alamofire 4.0, Swift 3, xCode 8)

%Vor%

fügen Sie folgendes zu Ihrer Info.plist hinzu

%Vor%

und hier ist ein Beispiel für das Erstellen einer Anfrage

%Vor%     
DoubleK 07.11.2016 12:35
quelle

Tags und Links