Autore Topic: Utilizzare socket SSL  (Letto 938 volte)

Offline mastergap

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend
  • Sistema operativo:
    Linux
Utilizzare socket SSL
« il: 01 Settembre 2010, 15:40:59 CEST »
0
Ciao a tutti, sto realizzando una piccola applicazione di prova che consiste in una chat minimale tra un server pc e un client android che comunicano tramite un socket. Vorrei sostituire il socket normale con un socket ssl e ho trovato una guida di come fare in java:
http://stilius.net/java/java_ssl.php
In android però non si possono lanciare le applicazioni con il comando descritto in fondo, come si può fare? Grazie mille.

Offline mastergap

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend
  • Sistema operativo:
    Linux
Re:Utilizzare socket SSL
« Risposta #1 il: 04 Settembre 2010, 00:14:30 CEST »
+3
Ho risolto il problema. Bisogna settare keystore e truststore a livello di codice usando i SocketFactory, l'ho fatto seguendo la documentazione su java e ssl di IBM. Poi il problema stava nel fatto che Android non supporta i keystore JKS (quelli utilizzati di default dal metodo getInstance() ) creati con keytool, quindi bisogna creare i keystore BKS utilizzando sempre keytool ma appoggiandosi alla libreria apposita che si scarica dal sito BouncyCastle. A questo punto tutto va bene, ma poi mi si è presentato un nuovo problema nel mio caso più grave. Il mio obiettivo è utilizzare SSL per autenticare il client, e di defualt viene autenticato solo il server, quando setto ServerSocket.setNeedClientAuth(true) ottengo una SSLHandshakeException: null cert chain e non riesco ad autenticare il client, cosa che invece funziona benissimo se lo stesso codice lo eseguo in una normale applicazione java. Qualcuno può aiutarmi? Grazie!