[스프링 부트] 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같은 툴을 사용 중이라면 툴 컴파일 옵션에서 자바 버전 변경해 주어야 함.