1. KeyStore 발급
먼저 HTTPS를 사용하기 위해서 keystore를 발급한다.
$ keytool -genkey -alias spring -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 4000
shell에 명령어 입력 시, 다음과 같은 절차를 거쳐서 만들어진다.
2. application.properties에 ssl 정보 등록
server.ssl.key-store=keystore.p12
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password=******
server.ssl.key-alias=spring
server.port=8443
PORT는 기존 HTTP 8080과 다르게 8443으로 등록했다.
여기까지 마치면, 더 이상 HTTP로는 Web Application이 connect 되지 않는다.
이유는, 기존의 1개의 Connector가 HTTPS와 연결되어있기에 HTTP와 연결될 Connector가 없기 때문이다.
그래서 추가적으로 Connector를 생성해서 HTTP에 할당한다.
3. Connector 생성
package cho.springboot;
import org.apache.catalina.connector.Connector;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class Application {
@GetMapping("/hello")
public String Hello(){
return "Hello, world!";
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public ServletWebServerFactory serverFactory() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createStandardConnector());
return tomcat;
}
private Connector createStandardConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(8080);
return connector;
}
}
ServletWebServerFactory와 Connector를 이용하여 HTTP에 Connector를 할당한다.
4. 확인
정상적으로 접속되는 것을 확인할 수 있다.
'Spring' 카테고리의 다른 글
SPRING BOOT- .properties에서 값 가져오기 (0) | 2022.02.02 |
---|---|
SPRING BOOT- 독립적으로 실행 가능한 JAR 만들기 (0) | 2022.02.02 |
댓글