simbro:
Eu preciso importar um certificado, a fim de fazer uma solicitação HTTP para um serviço externo em uma aplicação de Primavera de inicialização.
Como faço para configurar Primavera de inicialização, a fim de fazer isso?
Há um monte de informações lá fora, mas eu estou achando tudo um pouco confuso. Parece como se eu só precisa criar algo como um "truststore.jks" keystore e importar o certificado correto e e adicionar algumas entradas aos meus application.properties.
ISlimani:
Comece por gerar um certificado auto-assinado usando
Abra seu terminal ou
Se você já tem um certificado de
Copie este arquivo para o seu
Adicione as seguintes linhas ao seu
Criar uma
Agora o seu aplicativo é acessível com
Comece por gerar um certificado auto-assinado usando keytool
, se você não tiver uma
Abra seu terminal ou cmd
keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore keystore.p12 -validity 3650
Responder a todas as perguntas. Na primeira pergunta: qual é o seu primeiro nome e sobrenome put localhost
.
Se você já tem um certificado de yourcertificate.crt
fazer isso
keytool -import -alias tomcat -file yourcertificate.crt -keystore keystore.p12 -storepass password
Você vai ter um arquivo chamado keystore.p12
.
Copie este arquivo para o seu resources folder
Adicione as seguintes linhas ao seu properties
arquivo
# 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
Criar uma Config
classe da seguinte
@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;
}
}
Agora o seu aplicativo é acessível com https://localhost:8443
Agora você pode acessar o seu terceiro serviço que lhe pede para autenticação SSL