1. cafe24 로그인 > 인증서 관리 > 인증서 받기에서 개인키와 인증서를 다운로드 받는다.
2. 다운로드 받은 ssl.crt와 ssl.key를 resources 아래 넣어준 뒤, 터미널에서 resources 폴더로 이동 후 아래 명령어를 실행한다.
명령어를 실행하면 패스워드를 입력하라고 나온다.
그리고 패스워드를 입력한 뒤 몇 초 뒤에 ssl.p12 파일이 생성된다.(생성되기까지 조금 걸린다.)
openssl pkcs12 -export -in ssl.crt -inkey ssl.key -out ssl.p12 -name myapp
3. application.properties 파일에 아래 내용을 입력해준다.
server.port=443
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:ssl.p12
server.ssl.key-store-password= ssl.p12 생성시 입력한 비밀번호
4. https://devmango.tistory.com/101 를 참고하여 빌드해준다.
5. https://devmango.tistory.com/180 를 참고하여 도커를 실행시켜주는데 마지막 실행 시 아래와 같이 입력해준다.
docker run -d -t -p 443:443 [docker계정]/[docker repository명]:[tag] sleep infinity
!문제발생!
https를 설정해주니 http로는 접속이 안 되는 문제가 발생했다.
devmango1128.com 만 쓰고 접속했을때 http://www.devmango1128.com 으로 나오다보니 직접 https를 붙여주지 않으면 접속이 안 됐다.
(참고: https://subbak2.com/111)
1) application.properties에 아래 내용들을 추가한다.
server.port=443
server.port.http=80
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:ssl.p12
server.ssl.key-store-password=비밀번호
server.tomcat.redirect-port=443
2) ConnectiorConfig 클래스 파일을 생성한 뒤 아래와 같이 입력해준다.
package com.pomodoro.www.config;
import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
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.context.annotation.Configuration;
@Configuration
public class ConnectorConfig {
@Bean
public ServletWebServerFactory servletContainer() {
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);
}
};
tomcat.addAdditionalTomcatConnectors(createSslConnector());
return tomcat;
}
private Connector createSslConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setSecure(false);
connector.setPort(80);
connector.setRedirectPort(443);
return connector;
}
}
3) 도커 pull, push는 위 url에서 참고 후 아래와 같이 실행시켜준다.
5) http://www.devmango1128.com 으로 접속하면 https://www.devmango1128.com 으로 리디렉션 되는걸 확인할 수 있다.
'DEV > Spring' 카테고리의 다른 글
[mac os] 맥에서 Port 8080 was already in use 처리하기 (1) | 2023.11.30 |
---|---|
SpringBoot에서 ES6 사용할 수 있게 세팅하기 (1) | 2023.05.03 |
[Spring] IoC/DI 란? (19) | 2023.03.07 |
Spring - AOP 개념 (6) | 2023.03.02 |
3. SpringBoot(스프링부트) 빌드 후 실행 (1) | 2022.12.27 |
댓글