Salta al contenuto principale

Firma Android

Generatore di Android Keystore

Genera un keystore Android online in pochi secondi, senza Android Studio o keytool. Ottieni un keystore di rilascio PKCS#12, il certificato PEM e le impronte SHA-1 e SHA-256, pronti per Gradle, Capacitor, fastlane, CI e Google Play.

Container

PKCS#12

Chiave

RSA 2048, SHA-256

Impronte digitali

SHA-1 e SHA-256

Checklist di rilascio

  1. 1. Scegli l'alias e la password che resteranno associati a questa app nel tempo.
  2. 2. Scarica il keystore e salva i metadati nel tuo secret manager.
  3. 3. Configura lo stesso alias e la stessa password in Gradle o nel tuo ambiente CI.
  4. 4. Mantieni stabile la chiave di upload per non compromettere i futuri rilasci su Play.

Input

Dettagli Keystore

Inserisci le informazioni del soggetto da includere nel certificato di firma e scegli un alias stabile.

Output

Bundle di firma Android generato

Dopo la generazione riceverai un keystore scaricabile, l'export del certificato e i fingerprint necessari per la configurazione dello store o per le integrazioni OAuth.

Genera il bundle di firma per visualizzare qui l'alias, i fingerprint e i download dei file.

Nozioni base

Cos'è un Android keystore?

Un Android keystore è un file protetto da password che contiene la chiave privata e il certificato usati per firmare la tua app. Ogni APK e Android App Bundle deve essere firmato prima di poter essere installato o pubblicato, e Android accetta un aggiornamento solo se è firmato con la stessa chiave della versione già installata.

Questo rende il keystore uno dei file più importanti del tuo progetto. Con Play App Signing funge da carica chiave, che Google verifica prima di firmare di nuovo la tua app. Senza Play App Signing è la chiave di firma dell'app stessa, e se lo perdi non puoi più aggiornare l'app.

Questo generatore crea un keystore PKCS#12 (.p12) con chiave RSA a 2048 bit e certificato SHA-256, lo stesso output di keytool e del wizard di firma di Android Studio, con una validità predefinita di 25 anni che soddisfa i requisiti di Google Play.

Sicurezza e privacy

Come viene generato il tuo keystore

  • Il keystore viene creato su richiesta da un endpoint Capgo stateless via HTTPS e restituito direttamente al browser come download.
  • Le risposte vengono inviate con Cache-Control: no-store. La chiave privata, la password e i file non vengono mai salvati in un database né conservati dopo la risposta.
  • Il keystore è protetto con la tua password tramite crittografia AES-256 all'interno del contenitore PKCS#12.
  • Non serve alcun account o registrazione, e le richieste sono soggette a rate limit per evitare abusi.

Ti serve una chiave che non lasci mai il tuo computer? Esegui l'equivalente keytool in locale. Genera lo stesso tipo di keystore.

Comando keytool equivalente
keytool -genkeypair -v \
  -storetype PKCS12 \
  -keystore release.p12 \
  -alias release \
  -keyalg RSA -keysize 2048 \
  -validity 9125 \
  -dname "CN=Jane Doe, O=Acme Mobile, C=DE"

Passo dopo passo

Come generare un keystore Android online

Da un modulo vuoto a una release firmata su Google Play in sei step. I primi tre richiedono meno di un minuto.

  1. Passo 1

    Inserisci i dettagli del certificato

    Inserisci nome completo, email e il codice code di due lettere. Organizzazione, unità, città e stato sono opzionali e appariranno solo nel subject del certificato.

  2. Passaggio 2

    Scegli alias, validità e password

    Scegli un alias semplice come release o upload, mantieni la validità di 25 anni e imposta una password sicura di almeno 8 caratteri. Annotali tutti e tre prima di continuare.

  3. Passaggio 3

    Genera e scarica il keystore

    Seleziona Generate keystore, poi scarica il keystore .p12 e il certificato PEM. Copia i fingerprint SHA-1 e SHA-256 dal pannello dei risultati.

  4. Passaggio 4

    Fai il backup di keystore e credenziali

    Salva il file keystore, l'alias e la password in un password manager o secret manager. Non committare mai il keystore su Git.

  5. Passaggio 5

    Configura la firma nella tua build

    Punta Gradle, Capacitor CLI, fastlane o Capgo Cloud Build al keystore con alias e password, poi genera un AAB o APK di release firmato.

  6. Passaggio 6

    Carica l'app firmata su Google Play

    Carica l'Android App Bundle firmato in Play Console. Con Play App Signing, questo keystore diventa la tua upload key e Google gestisce la chiave di firma finale dell'app.

Usa l'output

Firma la tua app Android con il keystore generato

Sostituisci l'alias e la password con i valori inseriti sopra. Poiché il keystore è PKCS#12, la password della chiave è la stessa della password del keystore.

Configurazione di firma Gradle

Funziona con Capacitor, Ionic, React Native, Flutter e progetti nativi. Conserva le password in gradle.properties o nelle variabili d'ambiente.

android/app/build.gradle
// android/app/build.gradle
android {
    signingConfigs {
        release {
            storeFile file(RELEASE_STORE_FILE)
            storePassword RELEASE_STORE_PASSWORD
            keyAlias RELEASE_KEY_ALIAS
            keyPassword RELEASE_STORE_PASSWORD
            storeType "pkcs12"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

# ~/.gradle/gradle.properties (keep out of Git)
RELEASE_STORE_FILE=/path/to/release.p12
RELEASE_STORE_PASSWORD=your-password
RELEASE_KEY_ALIAS=release

Capacitor CLI

Crea un Android App Bundle firmato per un'app Capacitor con un solo comando.

Build firmato Capacitor
bunx cap build android \
  --keystorepath ./release.p12 \
  --keystorepass "your-password" \
  --keystorealias release \
  --keystorealiaspass "your-password" \
  --androidreleasetype AAB

Capgo Cloud Build

Salva il keystore una volta, poi compila e firma app iOS e Android nel cloud con Capgo.

Capgo CLI
bunx @capgo/cli@latest build credentials save \
  --platform android \
  --keystore ./release.p12 \
  --keystore-alias release \
  --keystore-key-password "your-password" \
  --keystore-store-password "your-password"

fastlane

Inietta le proprietà di firma nell'azione Gradle dai segreti CI.

Fastfile
gradle(
  task: "bundle",
  build_type: "Release",
  properties: {
    "android.injected.signing.store.file" => ENV["RELEASE_STORE_FILE"],
    "android.injected.signing.store.password" => ENV["RELEASE_STORE_PASSWORD"],
    "android.injected.signing.key.alias" => ENV["RELEASE_KEY_ALIAS"],
    "android.injected.signing.key.password" => ENV["RELEASE_STORE_PASSWORD"],
  }
)

Verifica, converti e salva in CI

Controlla l'alias e i fingerprint, converti in JKS per tool legacy o codifica il file per i secret della CI.

keytool e base64
# Inspect the keystore, alias, and fingerprints
keytool -list -v -keystore release.p12 -storetype PKCS12

# Convert to JKS if an older tool requires it
keytool -importkeystore \
  -srckeystore release.p12 -srcstoretype PKCS12 \
  -destkeystore release.jks -deststoretype JKS

# Base64-encode the keystore for a CI secret
base64 -i release.p12 | tr -d '\n' > release.p12.base64

Risoluzione problemi

Errori comuni del keystore Android e soluzioni

Il keystore è stato manomesso o la password non è corretta
La password dello store è errata. Copiala di nuovo dal password manager e controlla che non ci siano spazi finali nei secret della CI.
Nessuna chiave con alias 'release' trovata nel keystore
L'alias non corrisponde. Esegui keytool -list sul keystore per vedere l'alias esatto, che distingue tra maiuscole e minuscole.
Blocco finale non correttamente riempito (padding)
La password della chiave è errata. Con i keystore PKCS#12, la password della chiave deve essere uguale a quella del keystore.
Formato keystore non valido
Una toolchain Java 8 più vecchia sta leggendo un file PKCS#12 come JKS. Imposta storeType "pkcs12" in Gradle o converti il file in JKS con keytool -importkeystore.
Il tuo Android App Bundle è firmato con la chiave sbagliata
Google Play richiede la chiave di upload originale. Firma con quella chiave, oppure richiedi un reset della chiave di upload in Play Console usando il certificato PEM di un nuovo keystore.
Google Sign-In o Firebase Auth fallisce solo nelle build di release
Aggiungi le impronte SHA-1 e SHA-256 di release a Firebase e anche le impronte della chiave di Play App Signing da Play Console.

FAQ

FAQ sul generatore di keystore Android

Risposte su formati keystore, password, validità, chiavi di upload di Google Play e cosa fare se una chiave viene persa.

Cos'è un Android keystore?

Un keystore Android è un file protetto da password che contiene la chiave privata e il certificato usati per firmare il tuo APK o Android App Bundle. Android e Google Play usano quella firma per verificare che ogni aggiornamento provenga dallo stesso sviluppatore, quindi la stessa chiave deve firmare tutte le future release dell'app.

Come genero un keystore Android online senza Android Studio?

Compila il tuo nome, email, paese code, un alias della chiave, un periodo di validità e una password nel modulo qui sopra, quindi seleziona Genera keystore. Riceverai un keystore .p12 pronto all'uso, una copia PEM del certificato e le impronte SHA-1 e SHA-256. Non è necessario installare Android Studio, JDK o keytool.

Quale formato di file produce questo generatore di keystore Android?

Produce un keystore PKCS#12 (.p12) con una singola chiave di firma RSA a 2048 bit e un certificato firmato con SHA-256, oltre a un'esportazione del certificato in formato PEM. PKCS#12 è il tipo di keystore predefinito da Java 9 in poi ed è accettato da Gradle, apksigner, jarsigner e Google Play. Se uno strumento più vecchio richiede un file JKS, convertilo con keytool -importkeystore.

È sicuro generare un keystore online? La mia chiave viene salvata?

Il keystore viene generato su richiesta da un endpoint stateless Capgo tramite HTTPS e restituito direttamente al tuo browser. Le risposte vengono inviate con Cache-Control: no-store, e la chiave privata, la password e i file non vengono mai scritti in un database né conservati dopo la risposta. Se la tua politica di sicurezza richiede chiavi che non lascino mai il tuo computer, usa il comando keytool equivalente mostrato in questa pagina.

Posso usare questo keystore per i rilasci su Google Play?

Sì. Usalo come chiave di upload per una nuova app registrata con Play App Signing, oppure come chiave di firma dell'app per la distribuzione diretta di APK. Google Play richiede che il certificato sia valido almeno fino al 22 ottobre 2033, cosa coperta dalla validità predefinita di 25 anni.

La password dello store e la password della chiave devono essere diverse?

No. I keystore PKCS#12 usano una sola password per il contenitore e per la chiave. In Gradle, Capacitor CLI, fastlane o Capgo Cloud Build, inserisci lo stesso valore sia per la store password sia per la key password.

Quale periodo di validità devo scegliere?

Mantieni il valore predefinito di 25 anni. Google raccomanda almeno 25 anni e Google Play rifiuta gli upload firmati con un certificato che scade prima del 22 ottobre 2033. Non puoi estendere la validità di una chiave esistente in seguito.

Cosa succede se perdo il keystore o la password?

Se la tua app usa Play App Signing, puoi chiedere a Google di reimpostare la chiave di upload da Play Console generando qui un nuovo keystore e caricandone il certificato PEM. Senza Play App Signing, se perdi la chiave non puoi più pubblicare aggiornamenti sulla stessa scheda dell'app: fai il backup di file, alias e password in un secret manager.

Mi serve questo strumento per un keystore di debug?

Di solito no. L'SDK Android crea automaticamente un keystore di debug in ~/.android/debug.keystore con password android e alias androiddebugkey. Usa questo generatore per le chiavi di release e di upload che devono restare stabili tra le release sullo store.

Dove trovo le impronte SHA-1 e SHA-256?

Vengono mostrate nel pannello dei risultati subito dopo la generazione. Registrale con Firebase, Google Sign-In, Google Maps o Android App Links (assetlinks.json). Tieni presente che, dopo che Play App Signing ha rifirmato la tua app, anche i servizi Google richiedono l'impronta della chiave di firma dell'app da Play Console.

Funziona con Capacitor, Ionic, React Native e Flutter?

Sì. Un keystore è indipendente dal framework. Qualsiasi build Android che usa Gradle può firmare con esso, inclusi Capacitor, Ionic, React Native, Flutter e progetti nativi in Kotlin o Java.

Capgo Native Build

Build e firma app iOS e Android nel cloud con Capgo

Carica il keystore generato con questo strumento, avvia le build di release da CI e pubblica Android App Bundle firmati su Google Play senza dover gestire la tua build farm.

Esplora Native Build