tomcat - start - Spring-boot ejecutable war keystore no encontrado
jnlp windows 10 (1)
Actualización: Como resultado de esta solicitud de mejora , la limitación que se describe a continuación ya no se aplica. Tomcat 8.0.28+ y 7.0.66+ pueden cargar un almacén de claves desde un archivo jar.
Respuesta original
Supongo que estás usando Tomcat como el contenedor de servlets incorporado. Como se señala en la documentación de referencia , Tomcat actualmente no admite cargar un almacén de claves o un almacén de confianza dentro de un contenedor:
Tomcat requiere que el almacén de claves (y el almacén de confianza, si está utilizando uno) estén directamente accesibles en el sistema de archivos, es decir, no se puede leer desde un archivo jar.
Debe mover keystore.jks
de su jar y actualizar server.ssl.key-store
con su ubicación en el sistema de archivos.
Construyo la guerra ejecutable de arranque de primavera con soporte SSL. Mi archivo application.properties es:
server.port = 8443
server.ssl.key-store = classpath:keystore.jks
server.ssl.key-store-password = secret
server.ssl.key-password = another-secret
El archivo WAR contiene el archivo ''keystore.jks''. Pero tengo una extraña excepción:
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Could not find key store classpath:keystore.jks
Caused by: java.io.FileNotFoundException: class path resource [keystore.jks] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/D:/projects/vi3na/vi3na.web/target/vi3na.war!/WEB-INF/classes!/keystore.jks
¿Qué significa ''!'' significa en el camino ''D: /projects/vi3na/vi3na.web/target/vi3na.war! / WEB-INF / classes! /keystore.jks''