2012-07-09 14 views
5

Mi archivo .key como: ----- BEGIN RSA PRIVATE KEY ----- MIIEpAIBAAKCAQEA1j6eGXbHpqigZ1K // wnuyr5v/L2jFm7dzTtHJx8ZoMQ4CbsG¿Cómo usar el archivo .key y .pem para crear un socket SSL en Android?

Mi archivo .pem como: ----- BEGIN CERTIFICATE-- --- MIIE4zCCA8ugAwIBAgIDBOziMA0GCSqGSIb3DQEBBQUAMDwxCzAJBgNVBAYTAlVT

no sé cuántos pasos de autenticar a aquí. Solo quiero crear un socket ssl para una IP y un puerto, y enviar/recibir datos en ese socket. Traté de usar keystock, pero tal vez no entiendo en profundidad al respecto, siempre me equivoco.

Por favor dame una guía, o código de muestra.

Muchas gracias.

Respuesta

0

Al crear una conexión SSL, solo necesita el conector para permitir la conexión con su servidor, habilitándolo como una fuente de confianza. Para hacerlo, debe tener su certificado SSL en formato X509 y luego crear su conexión como se indica en this article.

Aquí está a guide on generating X.509 certificates.

+0

El artículo vinculado trata sobre la configuración de una tienda de confianza de Android, no un almacén de claves para la autenticación de cliente HTTPS, por lo tanto, su uso es limitado. Además, el OP no necesita generar certificados (cliente) ya que él ya tiene el archivo .key y .pem. – Robert

9

Supongo que el archivo .key y .pem representa el certificado de cliente que debe usar para realizar una autenticación de cliente HTTPS. Desafortunadamente, Java/Android prefiere un formato diferente, por lo tanto, le recomiendo que importe ambos archivos en un archivo BKS.

Crear un archivo BKS e importar el archivo existente .key + .pem es muy simple usando Portecle GUI. Después de iniciar Portecle, seleccione Archivo -> Nuevo Almacén de claves -> BKS. Luego puede ejecutar Herramientas -> Importar pares de claves y seleccionar el archivo .pem. Luego, Portecle le pedirá que seleccione el archivo .key.

Finalmente guarde el almacén de claves protegido con una contraseña de su elección.

El archivo creado BKS ahora se puede utilizar en su aplicación de Android. Consulte, por ejemplo, el código publicado en esta pregunta: Using client/server certificates for two way authentication SSL socket on Android

Actualización 2015-06-30: La descripción anterior funciona solo para Portecle 1.6 y versiones anteriores. Con la versión 1.7 y 1.8 no puede crear almacenes de claves compatibles con Android. En Portecle 1.9 use el formato BKS-V1 en su lugar.

+0

Este es un buen enlace. Pero creo todo en un hilo, y obtengo un error: android.os.NetworkOnMainThreadException. ¿Necesitamos crear hilo para eso? – Brave

+0

En Portecle 1.9 (no estoy seguro acerca de otras versiones), su archivo '.key' * debe estar protegido con contraseña *, de lo contrario, Portecle simplemente le dirá que la clave no es válida. –

Cuestiones relacionadas