[스프링 부트] chapter 6. HTTPS 설정

HTTPS 설정

keytool을 사용하여 keystore를 생성해야함

keytool -genkey -alias spring -storetype PKCS12 -keyalg RSA -keysize 2048 -keysotre keystore.p12 -validity 4000

application.properties에 다음과 같은 설정 추가

server.ssl.key-store=keystore.p12
server.ssl.key-store-password=123456
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=spring

https를 설정하면 http는 더이상 사용 불가 ( 커넥터가 하나이기 때문 )

http도 사용하려면 커넥터를 하나 더 생성해야 함.

내장 톰캣에서 커넥터 추가 방법

@Bean
public ServletWebServerFactory serverFactory() {
    TomcatServerWebServerFactory tomcat = new TomcatServletWebServerFactory();
    tomcat.addAdditionalTomcatConnectors(createStandardConnector());

    return tomcat;
}

private Connector createStandardConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.HttpHttp11NioProtocol");
    connector.setPort(8080);
    return connector
}

HTTP/2 적용 방법

application.properties에 다음과 같은 문장 추가

server.http2.enabled=true

단, tomcat 8.5에서는 추가 설정이 필요함. 따라서 HTTP/2를 사용하려면 추가 설정을 하는 것이 아니라

tomcat 9이상 버전을 사용하여 추가 설정 없이 사용하도록 권장함.

자바 버전이나 tomcat버전으로 올리려면 pom.xml의 properties에 다음과 같은 문장 추가

<properties>
    <java.version>9</java.version>
    <tomcat.version>9.0.10</tomcat.version>
</properties>

인텔리j같은 툴을 사용 중이라면 툴 컴파일 옵션에서 자바 버전 변경해 주어야 함.