2016-04-03 5 views
1

Ich schreibe eine iOS-App, die Certificates Pinning verwendet, um mit den selbstsignierten Zertifikaten, die von meinem Server gesendet werden, zu verifizieren. Das Zertifikat im Client ist jedoch abgelaufen.Ist es möglich, den Server zu ändern, um abgelaufene Zertifikate erneut zu validieren, die im Client gespeichert sind?

Um durch spezifischere, ich Alamofire verwende, und die Konfiguration ist:

let serverTrustPolicies: [String: ServerTrustPolicy] = [ 
      endpoint: .PinCertificates(
       certificates: ServerTrustPolicy.certificatesInBundle(), 
       validateCertificateChain: true, 
       validateHost: true 
      ) 
     ] 

ich getestet habe, wenn ich validateCertificateChain auf false, änderte sich alles wieder in Ordnung sein wil. Allerdings ist es eine veröffentlichte iOS-App und ich kann nichts ändern.

Gibt es etwas, was ich auf dem Server tun kann, um mein Zertifikat erneut zu validieren?

Bitte helfen!

Antwort

0

Sie können dieses Problem auf der Serverseite nicht lösen, wenn das Zertifikat fixiert ist.

Wenn Sie den Schlüssel festgesteckt haben, können Sie nach einem neuen Zertifikat mit demselben privaten Schlüssel fragen.

Beachten Sie, dass die Verwendung eines abgelaufenen Zertifikats gefährlich ist, da es die Sperrungsprüfung definitiv deaktiviert hat.

Was Sie tun können:

  1. Fordern Sie ein neues Zertifikat mit dem gleichen privaten Schlüssel
  2. Überprüfen Sie, ob Sie es mit Ihren alten Client arbeiten
  3. Wenn nicht, eine neue Version Ihres Kunden veröffentlichen.
+0

Ich erkannte, dass. – HanXu

Verwandte Themen