La autenticación de certificado de cliente con la primavera de arranque

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 keytoolsi 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.crthacer 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 propertiesarchivo

# 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 Configclase 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

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=200396&siteId=1
Recomendado
Clasificación