HOW-TO
Spring Boot에서 간단하게 HTTPS 적용하기
Man.날.코딩
2023. 12. 27. 03:53
반응형
SMALL
스프링 부트 : HTTPS 인증서
스프링 부트에서는 keytool이라는 도구를 이용하여 간단하게 인증서를 생성할 수 있습니다. 아래의 명령어를 통해 인증서를 생성할 수 있습니다.
keytool -genkey -alias spring -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 4000
위의 명령어를 실행하면, RSA 암호화 알고리즘을 사용하는 2048 비트 키 크기의 인증서가 생성됩니다. 생성된 인증서는 keystore.p12라는 이름의 파일로 저장됩니다. 이 인증서의 유효 기간은 4000일입니다.
@SpringBootApplication
public class MyuserApplication {
public static void main(String[] args) {
SpringApplication.run(MyuserApplication.class, args);
}
@Bean
public ServletWebServerFactory servletContainer() {
// Enable SSL Trafic
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);
}
};
System.out.println("############## HTTP to HTTPS redirect ##############");
// Add HTTP to HTTPS redirect
tomcat.addAdditionalTomcatConnectors(httpToHttpsRedirectConnector());
return tomcat;
}
// redirect from http port 8082 to https port 443
private Connector httpToHttpsRedirectConnector() {
Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
connector.setScheme("http");
connector.setPort(8082);
connector.setSecure(false);
connector.setRedirectPort(443);
return connector;
}
}
반응형
LIST