Sto cercando di installare il certificato autofirmato per il mio server Web in Android 4.3. Ho il file .crt nella radice della scheda SD (che in realtà è emulato in quanto non ho una scheda SD nello slot).
Per installare il certificato, vado su Impostazioni -> Generale -> Sicurezza -> Archivio credenziali -> Installa da archivio dispositivo.
Ottengo una finestra di dialogo che mostra il nome del certificato (il nome del file meno l'estensione .crt) che posso modificare (ma non fare), un "usato per" pull down con "VPN e app" selezionate e il testo in fondo della finestra di dialogo che informa "Il pacchetto contiene: un certificato utente". Tutto sembra a posto, quindi faccio clic su "Ok". La finestra di dialogo scompare e viene visualizzato un messaggio di brindisi con "[nome] installato".
Tuttavia, se vado immediatamente a "Credenziali attendibili e seleziono" Utente ", non c'è nulla lì! Anche il nuovo certificato non è in" Sistema ", ma non mi aspetterei lì. Se vado a un browser dopo questo e provo ad accedere al mio sito Web, ricevo ancora l'avviso che il certificato del sito non è attendibile. Ho anche provato a riavviare, ma non fa differenza.
Che cosa sto facendo di sbagliato? La completa mancanza di messaggi di errore non è utile. È possibile che il mio certificato sia nel formato sbagliato? Ho provato a utilizzare il file .crt nella directory ssl del server e ho provato a convertirlo in formato DER.
Aggiornamento: ho letto da qualche parte che Android richiede che i certificati siano in formato p12, quindi ho convertito il certificato Apache2 in p12 usando il seguente comando:
openssl pkcs12 -export -inkey server.key -in server.crt -out ~/server.p12
Ho quindi ripetuto i passaggi precedenti, ho ricevuto lo stesso messaggio di successo e quindi ho continuato a non vedere il certificato nelle credenziali dell'utente e ricevo ancora l'errore di certificato non attendibile dal browser del cellulare.