Dies ist eine allgemeine Frage, aber besonders interessiert mich die Verwendung für Android. Was ist eine Keystore-Datei und wofür wird sie verwendet?
Können mehrere Android-Anwendungen denselben Keystore verwenden, um ihre Anwendung zu signieren (was genau bedeutet es, eine APK zu "signieren"?), Und welche Auswirkungen hat dies (falls vorhanden)?
Antworten:
Die Antwort, die ich geben würde, ist, dass eine Keystore-Datei dazu dient, sich bei jedem zu authentifizieren, der fragt. Es ist nicht nur auf das Signieren von APK-Dateien beschränkt, sondern Sie können damit auch persönliche Zertifikate speichern, zu übertragende Daten signieren und eine Vielzahl von Authentifizierungen durchführen.
In Bezug auf das, was Sie damit für Android machen und wahrscheinlich das, wonach Sie suchen, da Sie das Signieren von Apks erwähnen, ist es Ihr Zertifikat. Sie kennzeichnen Ihre Anwendung mit Ihren Anmeldeinformationen. Sie können mehrere Anwendungen mit demselben Schlüssel kennzeichnen. Es wird empfohlen, ein Zertifikat zu verwenden, um mehrere von Ihnen geschriebene Anwendungen zu kennzeichnen. Es ist einfacher zu verfolgen, welche Anwendungen Ihnen gehören.
Ich bin mir nicht sicher, was Sie unter Implikationen verstehen. Ich nehme an, es bedeutet, dass niemand außer dem Inhaber Ihres Zertifikats Ihre Bewerbung aktualisieren kann. Das heißt, wenn Sie es in freier Wildbahn freigeben und das Zertifikat verlieren, mit dem Sie die Anwendung signiert haben, können Sie keine Updates freigeben. Bewahren Sie dieses Zertifikat daher sicher auf und sichern Sie es bei Bedarf.
Abgesehen davon, dass Sie Apks signieren, um sie in die Wildnis zu entlassen, können Sie sie verwenden, um Ihr Gerät bei einem Server über SSL zu authentifizieren, wenn Sie dies wünschen (unter anderem auch für Android).
quelle
In Android Market müssen Sie alle Apps, die Sie veröffentlichen, mit einem Zertifikat unter Verwendung eines öffentlichen / privaten Schlüsselmechanismus signieren (das Zertifikat wird mit Ihrem privaten Schlüssel signiert). Dies bietet eine Sicherheitsebene, die unter anderem verhindert, dass Angreifer aus der Ferne böswillige Updates für Ihre Anwendung auf den Markt bringen (alle Updates müssen mit demselben Schlüssel signiert sein).
Aus dem App-Signing-Handbuch der Android-Entwickler-Website:
Die Verwendung desselben Schlüssels hat einige Vorteile: Zum einen ist es einfacher, Daten zwischen Anwendungen auszutauschen, die mit demselben Schlüssel signiert sind. Ein weiterer Grund ist, dass mehrere mit demselben Schlüssel signierte Apps im selben Prozess ausgeführt werden können, sodass ein Entwickler "modularere" Anwendungen erstellen kann.
quelle
Weitere Informationen zum Signaturprozess finden Sie in der offiziellen Android-Dokumentation hier: http://developer.android.com/guide/publishing/app-signing.html
Ja, Sie können mehrere Anwendungen mit demselben Keystore signieren. Sie müssen sich jedoch an eines erinnern: Wenn Sie eine App im Play Store veröffentlichen, müssen Sie sie mit einem Nicht-Debug-Zertifikat signieren. Und wenn Sie eines Tages ein Update für diese App veröffentlichen möchten, muss der zum Signieren der apk verwendete Keystore derselbe sein. Andernfalls können Sie Ihr Update nicht veröffentlichen.
quelle
Die ganze Idee eines Keytools besteht darin, Ihre Apk mit einer eindeutigen Kennung zu signieren, die die Quelle dieser Apk angibt. Eine Keystore-Datei (soweit ich weiß) wird zum Debuggen verwendet, damit Ihre apk die Funktionalität eines Keytools hat, ohne Ihre apk für die Produktion zu signieren. Also ja, für Debugging-Zwecke sollten Sie in der Lage sein, mehrere Apks mit einem einzigen Keystore zu signieren. Aber verstehen Sie, dass Sie beim Start in die Produktion eindeutige Keytools als Kennungen für jede von Ihnen erstellte Apk benötigen.
quelle
keytool
was du meinst. keytool ist ein Java-Programm zum Generieren von Keystores.