Sí, hiciste keytool genkey
en el archivo server.jks
para que ese archivo contenga tu clave privada. Lo que debe hacer es primero agregar su certificado (cadena) a la JKS, LUEGO convierta la JKS a "PFX". El p7b por sí mismo no contiene información suficiente.
El .p7b
de la CA contiene el certificado para su servidor y puede contener otros certificados de "cadena" o "intermedios" de los que depende su certificado de servidor. Usted dice que este certificado es de una "CA local"; es que la propia CA delegada de una conocida "raíz" CA como Verisign? Si no, si la CA local tiene su propia raíz, ¿esa raíz ya está agregada al archivo cacerts
y / o jssecacerts
en su JAVA_HOME/lib/security
? (Si usted u otros usuarios en su sistema han estado interactuando con sistemas que usan esta CA y tiene una raíz privada, es probable que ya haya necesitado agregarla a un almacén de confianza, pero no necesariamente la estándar).
SI la cadena que le dio la CA usa una raíz que ya se encuentra en cacerts
distribuido en Java como Verisign o se ha agregado a cacerts
en su sistema específico, ejecute
keytool -keystore server.jks -alias serverkey -import -file whatever.p7b -trustcacerts
La respuesta debe ser "La respuesta del certificado se instaló en el almacén de claves". Si dice "El certificado se agregó al almacén de claves", en realidad es un error aunque no lo diga.
Luego conviértalo a PKCS # 12, que es el estándar real de Microsoft y algunas otras personas llaman PFX, como una línea pero interrumpida por publicación:
keytool -importkeystore -srckeystore server.jks -destkeystore server.pfx
-deststoretype pkcs12 -srcalias serverkey
En el primer paso, si la raíz necesaria (o el ancla) no está en cacerts
(bien conocida o ya se ha agregado) pero al menos un certificado CA está en la p7b, keytool
mostrará información sobre la certificado de "nivel superior" y pregunte Install reply anyway?
; solo responde "si". Si algo más complicado está mal, dale detalles.