Saltar al contenido principal

Generación de llaves de Android

Generador de llaves de Android

Genera una llave de Android en línea en segundos, sin Android Studio o keytool. Obtén una llave de PKCS#12 de liberación, el certificado PEM y las huellas dactilares SHA-1 y SHA-256, listas para Gradle, Capacitor, fastlane, CI y Google Play.

Contenedor

PKCS#12

Clave

RSA 2048, SHA-256

Huellas digitales

SHA-1 y SHA-256

Lista de verificación de lanzamiento

  1. 1. Elige el alias y la contraseña que permanecerán con esta aplicación a lo largo del tiempo.
  2. 2. Descarga el keystore y guarda la metadata en tu administrador de secretos.
  3. 3. Configura el mismo alias y la contraseña en Gradle o tu entorno de CI.
  4. 4. Mantenga estable la clave de carga para evitar que futuras versiones de Play se rompan.

Entrada

Detalles del keystore

Rellene la información del asunto que debe incluirse en el certificado de firma y elija un alias estable.

Salida

Paquete de firma Android generado

Después de la generación, obtendrá un keystore descargable más el certificado exportado y las huellas dactilares necesarias para la configuración de tiendas o integraciones de OAuth.

Genere el paquete de firma para mostrar el alias, huellas dactilares y descargas de archivos aquí.

Básicos

¿Qué es un keystore de Android?

Un keystore de Android es un archivo protegido por contraseña que contiene la clave privada y el certificado utilizados para firmar su aplicación. Cada APK y Android App Bundle debe ser firmado antes de que pueda ser instalado o publicado, y Android solo acepta una actualización cuando está firmada con la misma clave que la versión ya instalada.

Eso convierte al keystore en uno de los archivos más importantes de tu proyecto. Con la firma de Play App, actúa como tu clave de carga, que Google verifica antes de re-firmar su aplicación. Sin la firma de aplicaciones de Play, es la clave de firma de la aplicación misma, y perderla significa que ya no puede actualizar la aplicación.

Este generador crea un keystore PKCS#12 (.p12) con una clave RSA de 2048 bits y un certificado SHA-256, el mismo resultado que keytool y el asistente de firma de Android Studio, con una validez por defecto de 25 años que cumple con los requisitos de Google Play.

Seguridad y privacidad

¿Cómo se genera su keystore?

  • El keystore se crea a petición por un endpoint estatal Capgo sobre HTTPS y se devuelve directamente a su navegador como una descarga.
  • Las respuestas se envían con Cache-Control: no-storeLa clave privada, la contraseña y los archivos nunca se almacenan en una base de datos ni se conservan después de la respuesta.
  • El keystore está protegido con su contraseña utilizando la cifrado AES-256 dentro del contenedor PKCS#12.
  • No se requiere una cuenta ni registro, y se limitan las solicitudes para evitar el abuso.

Necesita una clave que nunca deje su máquina? Ejecute la equivalente keytool comando localmente. Produce el mismo tipo de keystore.

Comando equivalente de keytool
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"

Paso a paso

Cómo generar un keystore de Android en línea

Desde una forma vacía hasta una versión firmada en Google Play en seis pasos. Los primeros tres toman menos de un minuto.

  1. Paso 1

    Introducir los detalles del certificado

    Agregue su nombre completo, correo electrónico y dos letras de país code. La organización, unidad, ciudad y estado son opcionales y solo aparecen en el sujeto del certificado.

  2. Paso 2

    Elige un alias, validez y contraseña

    Elige un alias simple como release o upload, mantén la validez de 25 años y establece una contraseña fuerte de al menos 8 caracteres. Escribe todos tres antes de continuar.

  3. Paso 3

    Generar y descargar el keystore

    Seleccione Generar keystore, luego descargue el keystore .p12 y el certificado PEM. Copie las huellas digitales SHA-1 y SHA-256 del panel de resultados.

  4. Paso 4

    Almacene el keystore y las credenciales

    Almacene el archivo keystore, el alias y la contraseña juntos en un administrador de contraseñas o un administrador de secretos. Nunca comita el keystore a Git.

  5. Paso 5

    Configure la firma en su compilación

    Indique Gradle, el Capacitor CLI, fastlane o Capgo Cloud Build con el keystore con el alias y la contraseña, y luego compile una versión firmada AAB o APK.

  6. Paso 6

    Suba la aplicación firmada a Google Play

    Suba el Android App Bundle firmado en la Consola de Play. Con la firma de Play App, este keystore se convierte en su clave de carga y Google gestiona la clave de firma final del aplicativo.

Utilice el resultado

Firme su aplicación Android con el keystore generado

Sustituya el alias y la contraseña con los valores que ingresó anteriormente. Debido a que el keystore es PKCS#12, la contraseña de la clave es la misma que la contraseña del almacén.

Configuración de firma de Gradle

Funciona para Capacitor, Ionic, React Native, Flutter y proyectos nativos. Mantenga las contraseñas en gradle.properties o variables de entorno.

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

Genera un paquete de aplicación Android firmado para una aplicación Capacitor en una sola orden.

Capacitor construcción firmada
bunx cap build android \
  --keystorepath ./release.p12 \
  --keystorepass "your-password" \
  --keystorealias release \
  --keystorealiaspass "your-password" \
  --androidreleasetype AAB

Capgo Construcción de Cloud

Guarde el keystore una vez y permita Capgo Construcción de Cloud firmar y subir cada lanzamiento.

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

Inyecte propiedades de firma en la acción de Gradle desde secretos de 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"],
  }
)

Verificar, convertir y almacenar en CI

Verificar el alias y las huellas dactilares, convertir a JKS para herramientas legadas o codificar el archivo para un secreto de CI.

keytool y 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

Solución de problemas

Erros comunes de keystore de Android y soluciones

Errores y soluciones comunes de keystore de Android
La contraseña del almacén está mal. Copia de nuevo desde tu administrador de contraseñas y revisa espacios en blanco en secreto de CI.
No se encontró ninguna clave con el alias 'release' en el keystore.
La alias no coincide. Ejecute keytool -list en el keystore para ver la alias exacta, que es sensible a mayúsculas y minúsculas.
El bloque final no está correctamente alineado.
La contraseña de la clave está equivocada. Con keystore PKCS#12, la contraseña de la clave debe ser igual a la contraseña del almacén.
Formato de keystore inválido
Una herramienta de Java 8 más antigua está leyendo un archivo PKCS#12 como JKS. Establezca el parámetro storeType "pkcs12" en Gradle o convierta el archivo a JKS con keytool -importkeystore.
Su Android App Bundle está firmado con la clave incorrecta
Google Play espera la clave de carga original. Firmar con esa clave, o solicite un reinicio de la clave de carga en el Console de Play utilizando el certificado PEM de un nuevo keystore.
Google Sign-In o Firebase Auth falla solo en versiones de lanzamiento
Agregue las huellas digitales SHA-1 y SHA-256 de la versión de liberación a Firebase, y también las huellas digitales de la clave de firma de la aplicación de Play Console.

FAQ

Generador de llaves de Android FAQ

Respuestas sobre formatos de keystore, contraseñas, validez, claves de carga de Google Play y qué hacer si una clave se pierde.

¿Qué es un keystore de Android?

Un keystore de Android es un archivo protegido por contraseña que almacena la clave privada y el certificado utilizados para firmar su APK o Android App Bundle. Android y Google Play utilizan esa firma para verificar que cada actualización provenga del mismo desarrollador, por lo que la misma clave debe firmar todas las futuras versiones de la aplicación.

¿Cómo puedo generar un keystore de Android en línea sin Android Studio?

Rellene su nombre, correo electrónico, país code, un alias de clave, un período de validez y una contraseña en el formulario anterior, luego seleccione Generar keystore. Obtiene un keystore .p12 listo para usar, una copia PEM del certificado y las huellas digitales SHA-1 y SHA-256. No se requiere instalación de Android Studio, JDK o keytool.

¿Qué formato de archivo produce este generador de keystore de Android?

Produce un keystore PKCS#12 (.p12) con una clave de firma RSA de 2048 bits y un certificado firmado con SHA-256, más una exportación de certificado PEM. PKCS#12 es el tipo de keystore por defecto desde Java 9 y se acepta por Gradle, apksigner, jarsigner y Google Play. Si una herramienta más antigua necesita un archivo JKS, conviértelo con keytool -importkeystore.

¿Es seguro generar un keystore en línea? ¿Se almacena mi clave?

El keystore se genera en demanda por un punto final Capgo sin estado sobre HTTPS y se devuelve directamente a su navegador. Las respuestas se envían con Cache-Control: no-store, y la clave privada, la contraseña y los archivos nunca se escriben en una base de datos o se mantienen después de la respuesta. Si su política de seguridad requiere claves que nunca dejen su máquina, utilice el comando de keytool equivalente mostrado en esta página.

Puedo usar este keystore para lanzamientos en Google Play?

Sí. Utilízalo como clave de carga para una nueva aplicación inscrita en Play App Signing, o como clave de firma de la aplicación para la distribución directa de APK. Google Play requiere que el certificado sea válido hasta al menos el 22 de octubre de 2033, lo que cubre la validez por defecto de 25 años.

¿Deben ser diferentes la contraseña del almacén y la contraseña de la clave?

No. Los almacenes de claves PKCS#12 utilizan una contraseña para el contenedor y la clave. En Gradle, la Capacitor CLI, fastlane, o Capgo Cloud Build, ingrese el mismo valor para tanto la contraseña de la tienda como la contraseña de la clave.

¿Cuál período de validez debería elegir?

Mantenga la configuración por defecto de 25 años. Google recomienda al menos 25 años, y Google Play rechaza las cargas firmadas con un certificado que expire antes del 22 de octubre de 2033. No puede extender la validez de una clave existente más tarde.

¿Qué sucede si pierdo mi almacén de claves o contraseña?

Si su aplicación utiliza Play App Signing, puede pedir a Google que resetee la clave de carga desde la consola de Play generando un nuevo almacén de claves aquí y subiendo su certificado PEM. Sin Play App Signing, una clave perdida significa que no puede publicar actualizaciones en la misma lista de la aplicación, así que guarde el archivo, alias y contraseña en un administrador de secretos.

¿Necesito esta herramienta para un keystore de depuración?

Suele no ser necesario. El Android SDK crea un almacén de claves de depuración automáticamente en ~/.android/debug.keystore con la contraseña android y el alias androiddebugkey. Utilice este generador para claves de liberación y carga que deben permanecer estables a lo largo de las liberaciones de la tienda.

¿Dónde encuentro los huellas digitales SHA-1 y SHA-256?

Se muestran en el panel de resultados justo después de la generación. Regístralos con Firebase, Google Sign-In, Google Maps o Android App Links (assetlinks.json). Tenga en cuenta que una vez que Play App Signing re-firma su aplicación, también necesitará el fingerprint de la clave de firma de la aplicación desde la Consola de Play.

¿Funciona para Capacitor, Ionic, React Native y Flutter?

Sí. Un keystore es independiente de la plataforma. Cualquier construcción de Android que utilice Gradle puede firmar con él, incluyendo Capacitor, Ionic, React Native, Flutter y proyectos nativos de Kotlin o Java.