2013-11-26 21 views
7

Utilizzando RAD 8.5 con WS 8.5 runtime, io sono sempre un'eccezione sulla mia console:Come visualizzare e modificare il file cacerts?

The keystore located at "C:\IBM\Websphere85\jdk\jre\lib\security\cacerts" failed to load due to the following error: DerInputStream.getLength(): lengthTag=109, too big..

Dopo aver cercato per l'errore che ha ottenuto questo link che suggerisce di modificare il file e rimuovere le righe vuote/personaggi extra.

Come si modifica il file? Sono in ambiente Windows e il file sembra codificato in base64.

+0

Secondo lo stesso collegamento, non è un problema con il Base64 stessa codifica ma piuttosto con righe vuote extra o dati visibili dopo la fine. "Base64" contiene solo testo ASCII ([per la sua definizione] (http://en.wikipedia.org/wiki/Base64)) e quindi puoi usare Blocco note o qualsiasi altro editor di testo normale. – usr2564301

+0

@Jongware: Blocco note non sembra essere un buon editor per farlo. Ho dovuto aprirlo in Wordpad ma ancora non riesco a leggerlo a causa della codifica e quindi non c'è modo di verificare se ho apportato delle buone modifiche. Beh, non ha funzionato però. – Prince

+0

Purtroppo, non ci stai aiutando ad aiutarti ... 1. In realtà la tua domanda è OT per SO * a meno che * questo sia un problema specifico con il codice * tu * scritto; 2. Il mio suggerimento si basa sulla tua affermazione che il file di cui parli è dello stesso tipo del tuo link; 3. Modifica di un semplice file Base64 * dovrebbe * essere possibile utilizzando il Blocco note e, se ciò non fosse possibile, non si tratta di un file di * tipo * che pensi sia o non sia lo stesso * errore * che pensi è. – usr2564301

risposta

2

Ecco un modo per risolvere questo problema senza la necessità di visualizzare o modificare il file.

Il tipo di keyStore predefinito è JKS e la classe WSKeyStore presuppone che sia un file PKCS12 che genera l'errore precedente. Quindi abbiamo bisogno di convertire il file cacerts in formato .p12.

Utilizzando l'utilità keytool da linea di comando ho eseguito:

C:\IBM\WebSphere85\AppServer\java\bin>keytool -importkeystore^
-srckeystore C:\IBM\WebSphere85\AppServer\java\jre\lib\security\cacerts^
-destkeystore C:\IBM\WebSphere85\AppServer\java\jre\lib\security\cacerts.p12^
-srcstoretype JKS -deststoretype PKCS12 -srcstorepass changeit -deststorepass changeit -noprompt 

che mi ha dato un file cacerts.p12 che potrebbe essere facilmente letto dalla classe superiore.

Riferimenti:

Problemi correlati