Domanda

Mentre io sono stato familiarità con HTTPS e il concetto di SSL, ho recentemente iniziato un certo sviluppo e trovato io sono un po 'confuso.

Il requisito era che scrivo una piccola applicazione Java che gira su una macchina collegati a uno scanner. Quando un documento viene acquisito questo viene prelevato e il file (di solito PDF) ha inviato via Internet al nostro server applicazioni che poi elaborarlo. Ho scritto l'applicazione utilizzando le librerie di Apache Commons e HTTPClient.

Il secondo requisito è stato quello di connettersi tramite SSL, che richiede un certificato. A seguito di una guida sulla pagina HttpClient sto usando AuthSSLProtocolSocketFactory dalla pagina contributi.

Il costruttore può richiedere un archivio di chiavi, password di archivio chiavi, truststore e truststore password. Come un test iniziale il nostro DBA abilitato SSL su uno dei nostri server web di sviluppo e mi ha fornito un file di p12, che quando ho importato in IE mi permette di connettersi correttamente.

Sono un po 'confuso tra archivi di chiavi e truststore e quali passi devo prendere utilizzando il keytool. Ho provato a importare il p12 in un file di archivio chiavi, ma ottenere l'errore:

keytool error: java.lang.Exception: Input not an X.509 certificate

ho seguito un suggerimento di importare il p12 in Internet Explorer e l'esportazione come un cer quale posso quindi importare con successo in un archivio di chiavi. Quando ho fornito tali come argomento chiavi del AuthSSLProtocolSocketFactory ottengo un errror senza senso, ma se provo come un truststore sembra che lo legge bene, ma alla fine ho

Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate

Non sono sicuro se ho mancato alcuni passi, sto equivoco SSL e autenticazione reciproca del tutto o questo è mis-configurazione sul lato server.

Qualcuno può fornire suggerimenti o indicarlo verso le risorse che potrebbero aiutare a calcolare questo fuori per favore?

È stato utile?

Soluzione

L'archivio chiavi detiene le chiavi private e certificati associati. Il truststore tenere i certificati di cui ti fidi e che può quindi essere utilizzato per la costruzione di percorso di certificazione e verifica.

Ecco alcuni link che possono essere utili:

java.lang.Exception: Ingresso non un certificato X.509

Importa chiave privata e il certificato in Java archivio chiavi

Configurazione Keystore e truststore

Altri suggerimenti

assicurarsi che il file del certificato non ha nulla prima e dopo questi.

----- BEGIN CERTIFICATE -----

----- END CERTIFICATE -----

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top