simbro:
Tengo que importar un certificado con el fin de hacer una petición HTTP a un servicio externo en una aplicación de Primavera de arranque.
¿Cómo puedo configurar la primavera de arranque con el fin de hacer esto?
Hay una gran cantidad de información por ahí, pero me resulta todo un poco confuso. Parece como si se me permite sólo tiene que crear algo así como un almacén de claves "truststore.jks" e importar el certificado correcto, y algunas entradas y añadir a mis application.properties.
ISlimani:
Para empezar, la generación de un certificado autofirmado utilizando
Abra su terminal o
Si ya tiene un certificado de
Copiar este archivo a su
Añadir las siguientes líneas a su
Crear una
Ahora su aplicación es accesible con
Para empezar, la generación de un certificado autofirmado utilizando keytool
si no tiene ya uno
Abra su terminal o cmd
keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore keystore.p12 -validity 3650
Responde todas las preguntas. En la primera pregunta: ¿cuál es tu nombre y apellido de venta localhost
.
Si ya tiene un certificado de yourcertificate.crt
hacer esto
keytool -import -alias tomcat -file yourcertificate.crt -keystore keystore.p12 -storepass password
Obtendrá un archivo llamado keystore.p12
.
Copiar este archivo a su resources folder
Añadir las siguientes líneas a su properties
archivo
# Define a custom port instead of the default 8080
server.port=8443
# Tell Spring Security (if used) to require requests over HTTPS
security.require-ssl=true
# The format used for the keystore
server.ssl.key-store-type=PKCS12
# The path to the keystore containing the certificate
server.ssl.key-store=classpath:keystore.p12
# The password used to generate the certificate
server.ssl.key-store-password= {your password here}
# The alias mapped to the certificate
server.ssl.key-alias=tomcat
Crear una Config
clase de la siguiente
@Configuration
public class ConnectorConfig {
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(getHttpConnector());
return tomcat;
}
private Connector getHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
}
}
Ahora su aplicación es accesible con https://localhost:8443
Ahora puede acceder a su tercer servicio que le pide para la autenticación SSL