P12- und Mobileprovision-Dateien erklärt: iPhone-Signaturzertifikate
On-Device-Signer wie Feather und KSign verlangen zwei Dateien, bevor sie überhaupt etwas installieren können: ein .p12-Zertifikat und ein .mobileprovision-Profil. Viele Leute bekommen diese Dateien von jemand anderem, ohne zu wissen, was sie enthalten oder was schiefgehen kann. Dieser Leitfaden erklärt beide Dateien, wie du sie überprüfst, und die Risiken, anhand von Apples eigener Dokumentation.
Zuerst die Risiken
- Eine .p12-Datei enthält einen privaten Schlüssel. Wer die Datei und das Passwort dazu hat, kann Apps als dieser Entwickler signieren. Poste sie niemals öffentlich und schicke sie niemandem, dem du nicht vertraust.
- Apple kann jedes Zertifikat widerrufen. Apples Dokumentation besagt, dass es „digitale Zertifikate jederzeit nach eigenem Ermessen widerrufen kann“. Passiert das, funktionieren damit signierte Apps nicht mehr.
- Geteilte und gekaufte Zertifikate werden am häufigsten widerrufen. Ein Zertifikat, das viele fremde Personen zur öffentlichen Verbreitung nutzen, liegt außerhalb der Bedingungen, unter denen es ausgestellt wurde. Du hast keinen Einfluss darauf, wann es widerrufen wird, und gezahltes Geld wird in der Regel nicht erstattet. Siehe Sicherheit von Enterprise-Zertifikaten.
- Das Zertifikat prüft die App nicht. Die Signatur sagt aus, wer eine App signiert hat, nicht ob sie sicher ist. Überprüfe IPA-Dateien selbst: siehe wie du IPA-Dateien vor der Installation auf Malware prüfst.
Was eine .p12-Datei ist
Ein Signaturzertifikat allein ist öffentlich. Was jemanden tatsächlich in die Lage versetzt, Apps zu signieren, ist das Zertifikat zusammen mit seinem privaten Schlüssel, der auf dem Mac des Entwicklers erzeugt wird. Apples Keychain-Access-Leitfaden beschreibt das .p12-Format (Personal Information Exchange) als Datei, die „als Backup deines digitalen Zertifikats und privaten Schlüssels importiert werden kann“. Beim Export fragt Keychain Access nach einem Passwort, und dieses Passwort wird benötigt, um die Datei wieder zu importieren. Deshalb verlangen Signer eine .p12-Datei und ein Passwort.
Apple stellt verschiedene Zertifikatstypen aus. Für die Installation auf iPhones außerhalb des App Store begegnen dir Development-Zertifikate, Distribution-Zertifikate aus einer bezahlten Apple-Developer-Program-Mitgliedschaft sowie In-House-Distribution-Zertifikate aus dem Apple Developer Enterprise Program.
Was eine .mobileprovision-Datei ist
Ein Provisioning Profile ist eine von Apple signierte Datei, die festlegt, welche Apps laufen dürfen, von wem sie signiert sein müssen, auf welchen Geräten und mit welchen Berechtigungen. Apples technische Notiz TN3125 listet auf, was darin enthalten ist:
- DeveloperCertificates: die Zertifikate, die Apps innerhalb dieses Profils signieren dürfen. Deine .p12 muss mit einem davon übereinstimmen.
- App ID: die meisten Profile gelten für eine einzelne App ID. Eine Wildcard-App-ID kann mehrere Apps abdecken.
- Devices: die meisten Profile listen bestimmte Geräte über ihre UDID auf (ProvisionedDevices). In-House-(Enterprise-)Profile haben stattdessen ProvisionsAllDevices und funktionieren dadurch auf jedem Gerät. Siehe wie du deine iPhone-UDID findest.
- ExpirationDate: jedes Profil hat ein Ablaufdatum. Danach ist das Profil nicht mehr gültig.
- Entitlements: eine Positivliste an Funktionen wie Push-Benachrichtigungen oder App Groups. Apple erklärt, dass jedes Entitlement, das eine App nutzt, in der Positivliste des Profils enthalten sein muss.
Apple erklärt außerdem, dass das Gerät zuerst die Signatur des Profils prüft und anschließend kontrolliert, ob die App die Kriterien des Profils erfüllt. Stimmen Signaturzertifikat, App ID, Gerät oder Entitlements der App nicht überein, führt iOS sie nicht aus.
So prüfst du die Dateien selbst
- Innerhalb eines Signers: Feather listet „detaillierte Informationen zu Apps und deinen Zertifikaten“ als eine seiner Funktionen auf, sodass du nach dem Import dort Name, Typ und Ablaufdatum einsehen kannst.
- Auf einem Mac: Apples TN3125 zeigt, wie du ein Profil im Terminal mit
security cms -D -i profile.mobileprovisionentschlüsseln kannst. Die Ausgabe enthält ExpirationDate, die Geräteliste oder ProvisionsAllDevices sowie die Entitlements. - Prüfe, ob das Paar zusammenpasst: Das Zertifikat in der .p12 muss eines der DeveloperCertificates des Profils sein. Eine fehlende Übereinstimmung ist ein häufiger Grund, warum ein Signer vor der Installation einen Fehler meldet.
Häufige Probleme mit Zertifikatsdateien
- Falsches Passwort: Die .p12 lässt sich nicht importieren. Nur die Person, die sie exportiert hat, kennt das Passwort.
- Profil abgelaufen: Damit signierte Apps lassen sich nach dem Ablaufdatum nicht mehr öffnen. Du brauchst ein neues Profil und musst die Apps anschließend neu signieren. Siehe wie man IPA-Dateien neu signiert.
- Gerät nicht im Profil: Bei Development- und Ad-hoc-Profilen muss deine UDID gelistet sein. Sonst schlägt die Installation fehl, oft mit „Integrität konnte nicht überprüft werden“: siehe die Lösungen für den Integritätsfehler.
- Zertifikat widerrufen: Jede damit signierte App hört sofort auf zu funktionieren, und keine Einstellung am iPhone ändert daran etwas. Siehe was nach einem Revoke zu tun ist.
- Fehlende Entitlement: Eine App, die eine Funktion benötigt, die das Profil nicht erlaubt, kann sich zwar installieren lassen, aber bei dieser Funktion fehlschlagen, oder sich gar nicht erst installieren lassen.
Wo Scarlet iOS ins Bild passt
Scarlet verlangt von dir weder eine .p12 noch ein Profil. Es signiert mit einem geteilten Zertifikat statt mit deiner Apple ID, weshalb die Einrichtung so einfach ist, aber auch, weshalb jede über Scarlet installierte App aufhört zu funktionieren, sobald Apple dieses Zertifikat widerruft. Scarlet ist auf iOS 14 bis iOS 26 bestätigt; eine Unterstützung für iOS 27 wird von Dritten berichtet, ist aber nicht offiziell bestätigt. Wenn du ein eigenes Zertifikat aus dem Apple Developer Program hast, nutzt ein Signer wie Feather oder KSign dieses direkt. Zu den Vor- und Nachteilen siehe On-Device-Signing vs. Computer-Signing.
FAQ
Kann ich mit einer kostenlosen Apple ID eine .p12 und ein Profil erstellen?
Eine kostenlose Apple ID gibt dir ein persönliches Team-Zertifikat, das Tools wie Xcode, Sideloadly und SideStore für dich verwalten. Profile daraus halten 7 Tage. Signer, die für .p12-Dateien gebaut sind, sind hauptsächlich für bezahlte Developer-Zertifikate gedacht.
Ist es sicher, ein online geteiltes Zertifikat zu verwenden?
Es funktioniert, bis es widerrufen wird, was jederzeit und ohne Vorwarnung passieren kann. Außerdem weißt du nicht, wer sonst noch den privaten Schlüssel besitzt. Betrachte es als vorübergehend und signiere damit niemals etwas Sensibles.
Behebt ein neues Profil ein widerrufenes Zertifikat?
Nein. Ein Profil legt fest, welche Zertifikate es zulässt. Wenn das Zertifikat widerrufen wurde, brauchst du ein anderes Zertifikat und ein Profil, das dieses einschließt.