Java

[Spring Boot] HTTPS와 HTTP 동시 적용 방법

cob 2023. 6. 13. 14:25

 

기본적으로 커넥터가 하나기 때문에 HTTPS를 적용할 경우 HTTP 통신을 하지 못한다. 하지만 따로 설정을 하게 되면 두가지 모두 사용할 수 있다.
* Git 
https://github.com/kangilbin/Spring-Boot/tree/master/%EB%82%B4%EC%9E%A5%20%EC%9B%B9%EC%84%9C%EB%B2%84/webserver

 


1. HTTP 커넥터 설정

@Bean
public ServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
    
    // 커넥터 추가
    tomcat.addAdditionalTomcatConnectors(createStandardConnector());
    return tomcat;
}

private Connector createStandardConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    
    // HTTP로 사용할 포트 설정
    connector.setPort(8080);
    return connector;
}

 

 

 


2. 통신 확인 방법

Mac일 경우 명령어
curl -I -K --http1.1 https://localhast:7070/hello

 

2-1) HTTP 통신 확인

HTTP 통신 확인

 

 

2-2) HTTPS 통신 확인

공인 인증서가 아닐경우 오류가 발생하기 때문에 공인 인증서가 아니라면 아래 스크립트를 실행한다.
* SSL 인증서 적용

2023.06.12 - [Java] - [Spring Boot] 사설 SSL 인증서 생성 및 적용 방법

 

add-type @"
    using System.Net;
    using System.Security.Cryptography.X509Certificates;
    public class TrustAllCertsPolicy : ICertificatePolicy {
        public bool CheckValidationResult(
            ServicePoint srvPoint, X509Certificate certificate,
            WebRequest request, int certificateProblem) {
            return true;
        }
    }
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

HTTPS 통신 확인

 

 

반응형