ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring Boot에서 간단하게 HTTPS 적용하기
    HOW-TO 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
Designed by Tistory.