Recabamos en el mundo on line para de este modo tener para ti la solución para tu inquietud, si continúas con dificultades puedes dejar la inquietud y te contestaremos con mucho gusto.
Solución:
En cuanto a la pregunta original, puede utilizar el keytool
comando para ver y editar un almacén de claves como cacerts
.
A vista todo keys en el almacén de claves, utilice keytool -list
:
$ keytool -list -keystore $keystore.file
donde $keystore.file
es el camino a la cacerts
expediente, en su caso C:IBMWebsphere85jdkjrelibsecuritycacerts
.
A retirar especifico key, usar keytool -delete
:
$ keytool -delete -alias $cert.alias -keystore $keystore.file
donde $cert.alias
es un existente key alias de lo anterior -list
mando. *
A agregar un nuevo key que ya se generó en otro lugar, utilice keytool -importcert
:
$ keytool -importcert -alias $cert.alias -keystore $keystore.file -file $cer.file
donde $cer.file
es la ruta a un certificado existente o cadena de certificados.
Tenga en cuenta que con cada uno de estos comandos, se le solicitará la contraseña del almacén de claves que, en su lugar, puede especificar con el -storepass
opción. Por ejemplo:
$ keytool -delete -noprompt -alias $cert.alias -keystore $keystore.file -storepass $keystore.pass
* El $cert.alias
es el valor más a la izquierda en las líneas generadas desde keytool -list
.
Por ejemplo, si esta es la salida de keytool -list
:
$ keytool -list -keystore ./cacerts
Enter keystore password:
Keystore type: jks
Keystore provider: SUN
Your keystore contains 2 entries
verisignclass1ca, Jun 29, 1998, trustedCertEntry,
Certificate fingerprint (MD5): 51:86:E8:1F:BC:B1:C3:71:B5:18:10:DB:5F:DC:F6:20
verisignserverca, Jun 29, 1998, trustedCertEntry,
Certificate fingerprint (MD5): 74:7B:82:03:43:F0:00:9E:6B:B3:EC:47:BF:85:A5:93
entonces verisignclass1ca
y verisignserverca
son alias que puede especificar para eliminar.
Aquí hay una manera de resolver este problema sin la necesidad de ver o editar el archivo.
El tipo de keyStore predeterminado es JKS y la clase WSKeyStore asume que es un archivo PKCS12 que arroja el error anterior. Entonces necesitamos convertir el archivo cacerts al formato .p12.
Usando la utilidad keytool desde la línea de comando ejecuté:
C:IBMWebSphere85AppServerjavabin>keytool -importkeystore ^
-srckeystore C:IBMWebSphere85AppServerjavajrelibsecuritycacerts ^
-destkeystore C:IBMWebSphere85AppServerjavajrelibsecuritycacerts.p12 ^
-srcstoretype JKS -deststoretype PKCS12 -srcstorepass changeit -deststorepass changeit -noprompt
que me dio un cacerts.p12
archivo que podría ser leído fácilmente por la clase anterior.
Referencias:
- Error de IBM
- Stackoverflow: convertir .jks a .p12